Добрый день.
С программированием почти не знаком.
Питаюсь состряпать программку, которая будет выводить в таблицу результат sql-скрипта.
Код:
var
z : Byte;
Form1: TForm1;
a, k, n, t, dn, dk, w, an: string;
procedure TForm1.GoClick(Sender: TObject);
begin
z:=0;
if agent.Text <> '' then
begin
a:= 'CLIENT='+ agent.Text;
z:=z+1;
end;
if knp.Text <> '' then
begin
k:= 'CHECK='+ knp.Text;
z:=z+1;
if z>1 then begin k:= 'and '+k; end;
end;
if Nomber.Text <> '' then
begin
n:= 'NUMBER='+ Nomber.Text;
z:=z+1;
if z>1 then begin n:= 'and ' +n; end;
end;
if dateN.Text <> '' then
begin
dn:= 'Date>'+ dateN.Text;
z:=z+1;
if z>1 then begin dn:= 'and ' +dn; end;
end;
if DateK.Text <> '' then
begin
dk:= 'Date<'+ DateK.Text;
z:=z+1;
if z>1 then begin dk:= 'and ' +dk; end;
end;
if z>0 then begin w:='where'; end;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
adoQuery1.sql.Add('select * from OPEN where '+a +k +n +dn + dk);
ADOQuery1.Open;
end;
В результате при выполнении, если заполнены agent.text и knp.text одновременно все проходит нормально.
Если выполнять только при заполненном knp.text выскакивает:
Цитата:
---------------------------
[Microsoft][ODBC SQL Server Driver][SQL Server]Ошибка преобразования значения varchar "-732814751s" в тип данных int.
---------------------------
|
В чем может быть причина?