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

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

Вставка значения в поле с зарезервированным именем(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]

в некоторых СУБД помогает взятие имени поля в кавычки (двойные)


Наверх

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