Форум: "Базы";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
ВнизВставка значения в поле с зарезервированным именем(SUM) Найти похожие ветки
← →
zdm (2006-06-20 10:50) [0]Есть таблица , пишу
DataModule1.Query1.sql.Add("INSERT INTO r (SUM) VALUES (2)");
или
DataModule1.Query1.sql.Add("INSERT INTO r ([SUM]) VALUES (2)");
полный облом(invalid keyword....), сохраняю запрос в файл, создаю запрос из самой ACCESS все выполняется, я так понимаю дело именно в названии поля, можно-ли как-то обойти. Название поля менять я не имею права.Заранее спасибо
← →
Desdechado © (2006-06-20 10:55) [1]в некоторых СУБД помогает взятие имени поля в кавычки (двойные)
← →
zdm (2006-06-20 11:05) [2]Ты имеешь ввиду "INSERT INTO r ("SUM") VALUES (2)" ?
← →
zdm (2006-06-20 11:11) [3]не помогает
← →
Sergey13 © (2006-06-20 11:17) [4]А сколько всего полей в таблице. Если одно это (что странно), то возможно поможет
"INSERT INTO r VALUES (2)"
Если не одно, то
"INSERT INTO r VALUES (null,null,2,null,null)"
т.е. порядок полей должен соответствовать истинному.
Хотя с кавычками вроде должно бы работать.
← →
zdm (2006-06-20 11:33) [5]да в принципе не важно сколько полей, есть четыре, не одного ключевого(не я базу состовлял),,,вообщем подробно:
СУБД dBase
поля:
nls: char(17)
ksnls:Numeric(2,0)
sum:Numeric(12,2)
dat:Date
во все поля кроме (sum), вставка без проблем.
← →
saxon (2006-06-20 11:36) [6]С ACCESS всегда просто разобраться, если вставить в редактор SQL самого ACCESS. Он сам подскажет (или изменит) что и как.
← →
Sergey13 © (2006-06-20 11:42) [7]2 [5] zdm (20.06.06 11:33)
"INSERT INTO r VALUES (null,null,2,null)" попробуй.
ЗЫ: Хотя странная задача - вставить запись с одним значимым полем в таблицу без ключей.
← →
zdm (2006-06-20 11:45) [8]да вообщем я же говорил что ACCESS запрос выполняет, а из проги нет,,,вообщем на сколько я понял Delphi пыталась, определить (sum) не как поле а как "вычеслить сумму" , глюк короче какой-то а помог совет SERGEY 13----вообщем вообще не упоминать имя поля ....."INSERT INTO r VALUES ("1","1","1","13.06.2006"). Всем большое спасибо
← →
zdm (2006-06-20 11:47) [9]Прошу прощения
(INSERT INTO r VALUES ("1","1","1","13.06.2006"));
было приятно пообщаться
← →
Desdechado © (2006-06-20 11:48) [10]так, к сведению
Неупоминание имен полей чревато ошибками и долгими трудами в дальнейшем, если БД "дышит" (развивается) - добавляются/удаляются/переупорядочиваются поля в таблицах.
← →
zdm (2006-06-20 11:49) [11]да понятно, просто не я базу составлял, я обычно заранее все продумываю,,,а тут , что досталось по наследству.....то и досталось..Придется с этим жить.
← →
Sergey13 © (2006-06-20 11:52) [12]> [9] zdm (20.06.06 11:47)
> Прошу прощения
> (INSERT INTO r VALUES ("1","1","1","13.06.2006"));
> было приятно пообщаться
Лучше переделать на параметры. Иначе с датой могут быть проблемы. Тем более если база не твоя и с ней работает кто-то еще.
(INSERT INTO r VALUES (:p1,:p2,:p3,:p4));
← →
sniknik © (2006-06-20 11:56) [13]> я же говорил что ACCESS
а раньше говорил что
> СУБД dBase
в access (jet) "нестандартные" имена обьектов заключаются в квадратные кавычки [].
← →
zdm (2006-06-20 11:58) [14]я просто обычно переменными передаю, а это я для примера просто написал,,,кстати параметры это конечно хорошо, но в сложных запросах с ними часто возникают проблемы. Все равно спасибо за советы. Я раньше в форумах вопросы не задавал...А зря видимо.
← →
zdm (2006-06-20 12:00) [15]квадратные кавычки не помогают, я же в начале написал два примера
DataModule1.Query1.sql.Add("INSERT INTO r (SUM) VALUES (2)");
или
DataModule1.Query1.sql.Add("INSERT INTO r ([SUM]) VALUES (2)");
не один не работает......ну вообщем ладно разобрались и ладно
← →
sniknik © (2006-06-20 12:32) [16]> квадратные кавычки не помогают
если ты используеш jet, то должно помочь, это его стандарт. BDE то должны сработать двойные кавычки, типа INSERT INTO r (r."SUM") VALUES (2), других вариантов у них нет.
если же чтото экзотическое ... ну тогда с ним и надо разбираться, посмотреть в описании, у них могут быть еще варианты.
> ну вообщем ладно разобрались и ладно
пока еще нет, пока ты только нашол приемлемый для себя вариант.
← →
zdm (2006-06-20 12:42) [17]DataModule1.Query1.sql.Add("INSERT INTO r (SUM) VALUES (2)");
не помагает, а
DataModule1.Query1.sql.Add("INSERT INTO r (r."SUM") VALUES (2)");
помогло, вообщем теперь разобралить до конца, всем большое спасибо еще раз.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.046 c