Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Вниздобавление записи в таблицу Найти похожие ветки
← →
sergeymist (2005-01-27 21:30) [0]пытаюсь добавить строку в таблицу вот таким методом:
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
уважаемые Мастера, не подскажете чего не хватает? или объясните как обойти эту ошибку.
← →
chir (2005-01-27 22:22) [1]не знаю как в access, но с oracle " - не хотят работать. попробуй так:
adoquery2.SQL.Add("INSERT INTO own (own_fio,own_dom,own_tel) VALUES (""petrov"",""moskva"",""1234567"")");
← →
Tornado © (2005-01-28 07:57) [2]
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
← →
Tornado © (2005-01-28 07:58) [3]пусть не смущает "Reg.ReadString("Options", "BD", "")" - из реестра беру имя таблицы
← →
Соловьев © (2005-01-28 11:07) [4]>INSERT INTO own (own_fio,own_dom,own_tel) VALUES
>("petrov","moskva","1234567")
А такой запрос проходит в Ацесе?
← →
ЮЮ © (2005-01-28 11:32) [5][драйвер ODBC microsoft access]
Может все дело в дровах, а не в запросе?
← →
sniknik © (2005-01-28 12:35) [6]> [драйвер ODBC microsoft access]
> Может все дело в дровах, а не в запросе?
именно в дровах, oledb-шному jet-ту паралельно что одинарные что двойные кавычки. а вот в odbc делается дополнительная проверка запроса (в итоге все одно запрос идет в Jet (имхо, обьяснял уже здесь почему так думаю)) вот, а для него двойные кавычки "смертельны", не понимает он их как текст.
← →
sergeymist (2005-01-29 14:53) [7]Спасибо!!! как я понял, дабы обойти двойные кавычки, стоит юзать параметры...
← →
fess © (2005-01-30 11:57) [8]Не обязательно использовать параметры!!! ;)
Это обходится очень легко! ;)
Покажу на твоем примере ;).
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 - код одинарных кавычек, без кавычек воспринимаются только числа!
Удачи! ;)
← →
fess © (2005-01-30 11:58) [9]Пардон! Лишний плюс после VALUES (+!!!
← →
Anatoly Podgoretsky © (2005-01-30 12:05) [10]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 13:05) [11]Спасибо за поправку! "Есть многое на свете друг Горацио, чего не снилась даже мудрецам"... ;) Я этого не знал...
← →
Соловьев © (2005-01-31 10:45) [12]
> Не обязательно использовать параметры!!! ;)
наверное с датами никогда не работал.
Параметры и только параметры.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c