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