![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. поставь - заработает.
|
|
#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
|
||||
|
||||
|
Я понял.
Не помогает? что пишет? |
|
#6
|
|||
|
|||
|
Ошибка синтаксиса в инструкции UPDATE
В общем такое впечатление что если в условии where ip ,ip Должно быть обязательно числом,еслли это число то это работает...а вот если строка ,то нет((( Последний раз редактировалось Booo, 14.07.2009 в 00:24. |
|
#7
|
|||
|
|||
|
Я бы скорее грешил на поле E-mail.
|
|
#8
|
|||
|
|||
|
Как убрал это поле все встало на свои места.Спасибо майк огромное!!!
А что не так было с этим полем? |
|
#9
|
|||
|
|||
|
Так что было все таки не так с этим полем?
|
|
#10
|
|||
|
|||
|
Минус там не так. Просто сервер это воспринимает как математическую операцию. Попробуй взять это поле в кавычки или в кв. скобки (именно имя поля).
|