![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка в запросе! [D6, IB6.x]
Dimonka © (2002-03-06 10:39:00)В чем может быть дело?.Я в обработчик для кнопки вставляю запрос
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 17:00:00) [1]>Dimonka (06.03.02 16:38)
а не вводится ли у вас в TEdit значение в виде nn ,? Поскольку, если вы будете использовать как разделитель запятую а не точку, то в текст запроса вместо одного дробного попадает 2 целых значения-вот вам и лишний параметр.
Malder (2002-03-06 16:55:00) [2]сделай типа того:
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);
можешь прислать мне ящик пива =) что-то у меня настроение хорошее
И вот что. Если в скромном коллективе программистов найдутся девушки - то с НАСТУПАЮЩИМ ВАС !
asafr (2002-03-06 16:51:00) [3]Malder, прежде чем долго смеяться, ты сам не должен говорить глупостей, типа "двойные кавычки вообще в Delphi не применяются". Val тебе правильно ответил (к слову, это относится не только к Local SQL).
Я, просто заметил еще одну вещь:
(""+DBEdit1.Text+"","+DBEdit2.Text+","+DBEdit3.Text+")")-> здесь в одинарных кавычках есть символ закрывающейся скобки ")", а вот здесь-> символа открывающейся скобки "(" нет.
("Insert into Zarplata (Name,Normohours,Price) values
roottim (2002-03-06 16:42:00) [4]если так...
1. передавай через параметры
2. посмотри у себя в стандартах дробный разделитель... хз все может
Dimonka (2002-03-06 16:38:00) [5]Malder-Когда я выполняю этот запрос в ISQL он прекрасно работает,и параметры я задаю именно в двойных кавычках-ты не думай,что я полный чайник и думаю что это 2 апострофа. А насчет полей-первое текстовое,остальные float.Походу из-за этого вся бойда.Когда из DBEdita считывается дробное значение возникает ошибка из-за лишней запятой.
Val (2002-03-06 16:37:00) [6]хм, не обратил внимания, что он работает с IB :(
Val (2002-03-06 16:28:00) [7]>Malder © (06.03.02 16:18)
эту кавычку, он передает в текст SQL-запроса, как символ, а в Local SQL она играет ту же роль, что и одинарная. Никакого отношения к Delphi она не имеет.
Malder (2002-03-06 16:25:00) [8]Хочу добавить, что в Interbase тоже применяются одинарные, а не двойные кавычки. Так что пиши в своем тексте вместо двойных кавычек две одинарных...
P.S. Блин, вот развели то бодягу про кавычки =)
Malder (2002-03-06 16:18:00) [9]Читая форум, начинаю смеяться все сильнее...
...values (""+DBEdit1...У тебя здесь идет двойная кавычка, а потом одинарная (апостроф). А нужно ведь ТРИ апострофа подряд, двойные кавычки вообще в Delphi не применяются.......
хех... блин...
P.S. Ты наверное думаешь, что двойная кавычка - это как две одинарных =)
Val (2002-03-06 14:54:00) [10]>fnatali © (06.03.02 14:28)
думаю, нормочасы передаются в виде числа, и не нужно брать его в кавычки в тексте запроса, если поле в таблице не строковое(но это все наши гадания на кофейной гуще).
>Dimonka
А вообще чтобы избежать подобных несостыковок лучше пользоваться параметрами. См. TQuery.ParamByName
fnatali (2002-03-06 14:28:00) [11]>Val © (06.03.02 12:32)
В данном случае, он передаёт DBEdit2. Text, и для формирования именно текстазапроса и нужны двойные кавычки,имхо. Пусть попробует - по-моему, дело всё-таки в них.
Val (2002-03-06 12:32:00) [12]>fnatali © (06.03.02 12:00)
двойные кавычки в первом параметре потому, что он текстовый, а оcтальные наверноенет, но он не говорит о их типе, не дает текст(не делфийский код, а текст) запроса..
fnatali (2002-03-06 12:00:00) [13](""+DBEdit1.Text+"",""+DBEdit2.Text+"",""+DBEdit3.Text+"")
Проверь кавычки внимательно - у тебя то есть двойные, то нет...
asafr (2002-03-06 11:18:00) [14]Какой тип полей Normohours,Price в таблице?
Dimonka (2002-03-06 11:17:00) [15]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;
и в ошибке почему-то показывает на запятую?!
Val (2002-03-06 11:11:00) [16]проверьте текст на пробелы,
попробуйте его в SQL-Explorer
приведите текст здесь
Dimonka (2002-03-06 11:07:00) [17]Проверил-запрос правильный,а при выполнении такая же фигня
MetallAdm (2002-03-06 10:55:00) [18]s:String;
s:="Insert into Zarplata (Name,Normohours,Price)values (""+DBEdit1.Text+"","+DBEdit2.Text+","+DBEdit3.Text+")"
Edit1.Text:=s;
сделай так и посмотри правильно ли у тебя получается запрос
может где ковычка или запятая лишняя
Dimonka (2002-03-06 10:49:00) [19]Он почему-то выпендривается на запятую после DBEdit1.Text,но она же должна присутстврвать?!
Val (2002-03-06 10:41:00) [20]пробел перед values, скобка после и кавычки проверьте