Форум: "Базы";
Текущий архив: 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