Я пытаюсь использовать параметризованные запросы с ADO. Выполнение Command
объекта броски ошибка:«Должен объявить переменную @myvariable» ошибка с параметризованным запросом ADO
Must declare the variable '@filename'
я объявляю параметр @filename
с помощью CreateParameter/Append
:
sql := 'INSERT INTO Sqm(Filename, data) VALUES(@filename, @data)';
command := CoCommand.Create;
command.Set_ActiveConnection(Connection.ConnectionObject);
command.Set_CommandText(sql);
command.Set_CommandType(adCmdText);
command.Parameters.Append(Command.CreateParameter('@filename', adLongVarWChar, adParamInput, -1, Filename));
command.Parameters.Append(Command.CreateParameter('@data', adLongVarWChar, adParamInput, -1, xml);
command.Execute({out}recordsAffected, EmptyParam, adCmdText or adExecuteNoRecords);
Что я делаю не так?
Попробуйте с помощью ':' вместо '@' перед Params в запросе. И удалите @, откуда вы добавляете параметры. –
@MikaelEriksson: * Строка 1: Неправильный синтаксис рядом с:: * Вы были бы удивлены, я определенно был, что никто никогда не показывал пример запросов с параметрами ADO. (много можно найти с ADO.NET) –
Похоже, вы используете интерфейсы ado непосредственно вместо tadocommand. Попробуйте с помощью '?' В запросе, где вы поместите имя переменной 'values (?,?)'. Я пару часов от компьютера, поэтому я не могу проверить, что он будет работать. –