Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];

Вниз

Ошибка в запросе!   Найти похожие ветки 

 
Dimonka   (2002-03-06 10:39) [0]

В чем может быть дело?.Я в обработчик для кнопки вставляю запрос
Query3.Sql.Add
("Insert into Zarplata (Name,Normohours,Price)values (""+DBEdit1.Text+"","+DBEdit2.Text+","+DBEdit3.Text+")");
и получаю сообщение General SQL error!Token unknown line-1 char 55 ,


 
Val   (2002-03-06 10:41) [1]

пробел перед values, скобка после и кавычки проверьте


 
Dimonka   (2002-03-06 10:49) [2]

Он почему-то выпендривается на запятую после DBEdit1.Text,но она же должна присутстврвать?!


 
MetallAdm   (2002-03-06 10:55) [3]

s:String;
s:="Insert into Zarplata (Name,Normohours,Price)values (""+DBEdit1.Text+"","+DBEdit2.Text+","+DBEdit3.Text+")"

Edit1.Text:=s;

сделай так и посмотри правильно ли у тебя получается запрос
может где ковычка или запятая лишняя



 
Dimonka   (2002-03-06 11:07) [4]

Проверил-запрос правильный,а при выполнении такая же фигня


 
Val   (2002-03-06 11:11) [5]

проверьте текст на пробелы,
попробуйте его в SQL-Explorer
приведите текст здесь


 
Dimonka   (2002-03-06 11:17) [6]

procedure TForm1.BInsert1Click(Sender: TObject);
With DataModule1 do
begin
Query3.Edit;
Query3.Close;
Query3.SQL.Clear;
Query3.Sql.Add
("Insert into Zarplata (Name,Normohours,Price) values (""+DBEdit1.Text+"","+DBEdit2.Text+","+DBEdit3.Text+")");
Query3.ExecSQL;
Query3.Close;
Query3.SQl.Clear;
Query3.SQL.Add("Select * from Zarplata");
Query3.Open;
end;
end;
и в ошибке почему-то показывает на запятую?!


 
asafr   (2002-03-06 11:18) [7]

Какой тип полей Normohours,Price в таблице?


 
fnatali   (2002-03-06 12:00) [8]

(""+DBEdit1.Text+"",""+DBEdit2.Text+"",""+DBEdit3.Text+"")
Проверь кавычки внимательно - у тебя то есть двойные, то нет...


 
Val   (2002-03-06 12:32) [9]

>fnatali © (06.03.02 12:00)
двойные кавычки в первом параметре потому, что он текстовый, а оcтальные наверное нет, но он не говорит о их типе, не дает текст(не делфийский код, а текст) запроса..


 
fnatali   (2002-03-06 14:28) [10]

>Val © (06.03.02 12:32)
В данном случае, он передаёт DBEdit2. Text, и для формирования именно текста запроса и нужны двойные кавычки,имхо. Пусть попробует - по-моему, дело всё-таки в них.


 
Val   (2002-03-06 14:54) [11]

>fnatali © (06.03.02 14:28)
думаю, нормочасы передаются в виде числа, и не нужно брать его в кавычки в тексте запроса, если поле в таблице не строковое(но это все наши гадания на кофейной гуще).

>Dimonka
А вообще чтобы избежать подобных несостыковок лучше пользоваться параметрами. См. TQuery.ParamByName


 
Malder   (2002-03-06 16:18) [12]

Читая форум, начинаю смеяться все сильнее...
...values (""+DBEdit1... У тебя здесь идет двойная кавычка, а потом одинарная (апостроф). А нужно ведь ТРИ апострофа подряд, двойные кавычки вообще в Delphi не применяются.......
хех... блин...
P.S. Ты наверное думаешь, что двойная кавычка - это как две одинарных =)


 
Malder   (2002-03-06 16:25) [13]

Хочу добавить, что в Interbase тоже применяются одинарные, а не двойные кавычки. Так что пиши в своем тексте вместо двойных кавычек две одинарных...
P.S. Блин, вот развели то бодягу про кавычки =)


 
Val   (2002-03-06 16:28) [14]

>Malder © (06.03.02 16:18)
эту кавычку, он передает в текст SQL-запроса, как символ, а в Local SQL она играет ту же роль, что и одинарная. Никакого отношения к Delphi она не имеет.


 
Val   (2002-03-06 16:37) [15]

хм, не обратил внимания, что он работает с IB :(


 
Dimonka   (2002-03-06 16:38) [16]

Malder-Когда я выполняю этот запрос в ISQL он прекрасно работает,и параметры я задаю именно в двойных кавычках-ты не думай,что я полный чайник и думаю что это 2 апострофа. А насчет полей-первое текстовое,остальные float.Походу из-за этого вся бойда.Когда из DBEdita считывается дробное значение возникает ошибка из-за лишней запятой.


 
roottim   (2002-03-06 16:42) [17]

если так...
1. передавай через параметры
2. посмотри у себя в стандартах дробный разделитель... хз все может


 
asafr   (2002-03-06 16:51) [18]

Malder, прежде чем долго смеяться, ты сам не должен говорить глупостей, типа "двойные кавычки вообще в Delphi не применяются". Val тебе правильно ответил (к слову, это относится не только к Local SQL).
Я, просто заметил еще одну вещь:
(""+DBEdit1.Text+"","+DBEdit2.Text+","+DBEdit3.Text+")") -> здесь в одинарных кавычках есть символ закрывающейся скобки ")", а вот здесь
("Insert into Zarplata (Name,Normohours,Price) values
-> символа открывающейся скобки "(" нет.


 
Malder   (2002-03-06 16:55) [19]

сделай типа того:


Query3.Sql.Add("Insert into Zarplata (Name,Normohours,Price values (:p1,:p2,:p3)");
query3.params.Fieldbyname("p1").asString:=DBedit1.text;
query3.params.Fieldbyname("p2").asFloat:=strtofloat(DBedit2.text);
query3.params.Fieldbyname("p3").asFloat:=strtofloat(DBedit3.text);


можешь прислать мне ящик пива =) что-то у меня настроение хорошее
И вот что. Если в скромном коллективе программистов найдутся девушки - то с НАСТУПАЮЩИМ ВАС !


 
Val   (2002-03-06 17:00) [20]

>Dimonka (06.03.02 16:38)
а не вводится ли у вас в TEdit значение в виде nn ,? Поскольку, если вы будете использовать как разделитель запятую а не точку, то в текст запроса вместо одного дробного попадает 2 целых значения-вот вам и лишний параметр.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.005 c
3-39
ЛенаК
2002-03-06 09:36
2002.04.01
deadlock violation при удалении записей


1-210
AlexMey
2002-03-20 12:40
2002.04.01
Как определить координаты курсора?


3-21
PeteDM
2002-03-05 16:54
2002.04.01
Interbase


3-56
Turalyon
2002-03-05 13:35
2002.04.01
Триггер в IB6


1-209
Evgenyk
2002-03-10 16:35
2002.04.01
Как программно получить данные о версии файла ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский