Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-1147426811
Juice
2006-05-12 13:40
2006.08.27
TClientDataSet: страноости с Eof


11-1131614466
-=Mike=-
2005-11-10 12:21
2006.08.27
Не получается послать post-сообщение окну


2-1155044934
fast2
2006-08-08 17:48
2006.08.27
Как второй раз не открыть дочерное окно?


2-1155026269
Hadroran
2006-08-08 12:37
2006.08.27
Даже не знаю как тему назвать


15-1154599112
SerJaNT
2006-08-03 13:58
2006.08.27
8bf





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский