|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Ошибки при запросах
В общем работает примерно вот так:
Клиент отправляет данные\на сервере они разбиваются по едитам... с помощью вот этой процедурки провеяется и выбирается обновлять данные или занести: Код:
adoquery2.sql.text:='SELECT * FROM table1 WHERE ip='+Edit5.Text+ ''; ADOQuery2.open; edit3.Text:=inttostr(ADOQuery2.RecordCount); if ADOQuery2.RecordCount <> 0 then Button3.Click //Кнопка обеновляет данные else button1.Click; //кнопка вносит данные Возникает вот такая ошибка : "Число содержит синтаксическую ошибку в выражении запроса ip=192.168.0.100" Типы всех значений в таблице это текст... Вторая ошибка возникает при обновлении данных,делаю вот так : Код:
var tmp_query: string; begin ADOQUery1.Active:=false; DAtaSource1.Enabled:=false; tmp_query:=ADOQUERY1.SQL.Text; adoquery1.sql.text:='UPDATE table1 SET'#13#10+ 'fio = ' + QuotedStr(Edit2.Text) + ','#13#10 + 'E-mail = '+ QuotedStr(Edit4.Text) + ','#13#10 + 'id = '+ QuotedStr(Edit1.Text) + ','#13#10 + 'icq = '+ QuotedStr(Edit6.Text) + ','#13#10 + 'info = '+ QuotedStr(Edit7.Text) + #13#10 + 'WHERE ip='+Edit5.Text; ADOQuery1.ExecSQL; ADOQuery1.SQL.Text :=tmp_query; ADOQUery1.Active:=true; Datasource1.Enabled:=true; То есть работает только занос в бд ... Последний раз редактировалось Booo, 12.07.2009 в 00:04. |
#2
|
|||
|
|||
Кто нибудь :'(
|
#3
|
||||
|
||||
в последней строке запросе забыл QuotedStr. поставь - заработает.
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#4
|
|||
|
|||
Цитата:
Не помогает Код:
ADOQUery1.Active:=false; DAtaSource1.Enabled:=false; tmp_query:=ADOQUERY1.SQL.Text; adoquery1.sql.text:='UPDATE table1 SET'#13#10+ 'fio = ' + QuotedStr(Edit2.Text) + ','#13#10 + 'E-mail = '+ QuotedStr(Edit4.Text) + ','#13#10 + 'id = '+ QuotedStr(Edit1.Text) + ','#13#10 + 'icq = '+ QuotedStr(Edit6.Text) + ','#13#10 + 'info = '+ QuotedStr(Edit7.Text) + #13#10 + 'WHERE ip='+QuotedStr(Edit5.Text); ADOQuery1.ExecSQL; ADOQuery1.SQL.Text :=tmp_query; ADOQUery1.Active:=true; Datasource1.Enabled:=true; |
#5
|
||||
|
||||
Я понял.
Не помогает? что пишет? Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#6
|
|||
|
|||
Ошибка синтаксиса в инструкции UPDATE
В общем такое впечатление что если в условии where ip ,ip Должно быть обязательно числом,еслли это число то это работает...а вот если строка ,то нет((( Последний раз редактировалось Booo, 14.07.2009 в 00:24. |
#7
|
|||
|
|||
Я бы скорее грешил на поле E-mail.
|
#8
|
|||
|
|||
Как убрал это поле все встало на свои места.Спасибо майк огромное!!!
А что не так было с этим полем? |
#9
|
|||
|
|||
Так что было все таки не так с этим полем?
|
#10
|
|||
|
|||
Минус там не так. Просто сервер это воспринимает как математическую операцию. Попробуй взять это поле в кавычки или в кв. скобки (именно имя поля).
|