Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

добавление записи в таблицу [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'')');


Наверх

Титульная страница Поиск, карта сайта Написать письмо