![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
добавление записи в таблицу [D7, msaccess]
sergeymist © (2005-01-27 21:30:00)пытаюсь добавить строку в таблицу вот таким методом:
adoquery2.SQL.Clear;
adoquery2.SQL.Add('INSERT INTO own (own_fio,own_dom,own_tel) VALUES ("petrov","moskva","1234567")');
adoquery2.ExecSQL;
вместо того чтобы выполнить sql выдается ошибка:
проект такойто вызвал исключение класса EOLEExeption
[microsoft][драйвер ODBC microsoft access] Cлишком мало параметров. требуется 1
уважаемые Мастера, не подскажете чего не хватает? или объясните как обойти эту ошибку.
Соловьев (2005-01-31 10:45:00) [1]
> Не обязательно использовать параметры!!! ;)
наверное с датами никогда не работал.
Параметры и только параметры.
fess (2005-01-30 13:05:00) [2]Спасибо за поправку! 'Есть многое на свете друг Горацио, чего не снилась даже мудрецам'... ;) Я этого не знал...
Anatoly Podgoretsky (2005-01-30 12:05:00) [3]fess © (30.01.05 11:57) [8]
Ну раз предлагаешь динамические запросы, то и делать их надо более системно.
adoquery2.SQL.Add('INSERT INTO own (own_fio,own_dom,own_tel) VALUES(' + QuotedStr('petrov')' + ',' + QuotedStr('moskva') + ',' + QuotedStr('1234567') + ')');
fess (2005-01-30 11:58:00) [4]Пардон! Лишний плюс после VALUES (+!!!
fess (2005-01-30 11:57:00) [5]Не обязательно использовать параметры!!! ;)
Это обходится очень легко! ;)
Покажу на твоем примере ;).
adoquery2.SQL.Clear;
adoquery2.SQL.Add('INSERT INTO own (own_fio,own_dom,own_tel) VALUES (+#39+'petrov'+#39+','+#39+'moskva'+#39+','+#39+'1234567'+#39)');
adoquery2.ExecSQL;
#39 - код одинарных кавычек, без кавычек воспринимаются только числа!
Удачи! ;)
sergeymist (2005-01-29 14:53:00) [6]Спасибо!!! как я понял, дабы обойти двойные кавычки, стоит юзать параметры...
sniknik (2005-01-28 12:35:00) [7]> [драйвер ODBC microsoft access]
> Может все дело в дровах, а не в запросе?
именно в дровах, oledb-шному jet-ту паралельно что одинарные что двойные кавычки. а вот в odbc делается дополнительная проверка запроса (в итоге все одно запрос идет в Jet (имхо, обьяснял уже здесь почему так думаю)) вот, а для него двойные кавычки "смертельны", не понимает он их как текст.
ЮЮ (2005-01-28 11:32:00) [8][драйвер ODBCmicrosoft access]
Может все дело в дровах, а не в запросе?
Соловьев (2005-01-28 11:07:00) [9]>INSERT INTO own (own_fio,own_dom,own_tel) VALUES
>("petrov","moskva","1234567")
А такой запрос проходит в Ацесе?
Tornado (2005-01-28 07:58:00) [10]пусть не смущает "Reg.ReadString('Options', 'BD', '')" - из реестра беру имя таблицы
Tornado (2005-01-28 07:57:00) [11]
SQLString := ('INSERT INTO ' + Reg.ReadString('Options', 'BD', '') + ' (Lpumg, Date_v_rem) VALUES (:Lpumg, :Date_v_rem)');
with DataMod.ADOQuery do begin
Close;
SQL.Clear;
SQL.Add(SQLString);
Parameters.ParamByName('Lpumg').Value := 'Арзамас';
Parameters.ParamByName('Date_v_rem').Value := '12.02.05';
ExecSQL;
end;
база - Access
chir (2005-01-27 22:22:00) [12]не знаю как в access, но с oracle " - не хотят работать. попробуй так:
adoquery2.SQL.Add('INSERT INTO own (own_fio,own_dom,own_tel) VALUES (''petrov'',''moskva'',''1234567'')');