Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] SQL-запрос на Delphi (http://forum.oszone.net/showthread.php?t=137853)

FRZ 16-04-2009 14:08 1095737

SQL-запрос на Delphi
 
Итак, имеется запрос вида:

query1.sql.ADD('INSERT INTO Tekushiy_zakaz.db (куча всего) SELECT тажекуча FROM Tekushiy_klient.db WHERE IDg="'+dbgrid2.SelectedField.Text+'";');

Так вот, в таблице IDg - это числовой идентификатор (longint), поэтому при подобном сравнении компилятор естессно ругается на несовместимость типов. А если перед dbgrid2.SelectedField.Text ставлю strtoint, следующий за ним знак + он воспринимает как арифметическую операцию и тоже пишет несовместимость типов (мол нельзя сложить число и ковычку). Как в этом случае можно поступить? Замучался уже с этими кавычками - вроде все варианты перебрал :) Помогите люди добрые!

CyberDaemon 16-04-2009 14:40 1095784

Сам SQL-запрос в результате должен так выглядеть:
INSERT INTO Tekushiy_zakaz.db (куча всего) SELECT тажекуча FROM Tekushiy_klient.db WHERE IDg="то-что-в-dbgrid2.SelectedField.Text";?

А ежели так попробовать?
query1.sql.ADD('INSERT INTO Tekushiy_zakaz.db (куча всего) SELECT тажекуча FROM Tekushiy_klient.db WHERE IDg='''+dbgrid2.SelectedField.Text+''';');

либо
query1.sql.ADD('INSERT INTO Tekushiy_zakaz.db (куча всего) SELECT тажекуча FROM Tekushiy_klient.db WHERE IDg='+dbgrid2.SelectedField.Text+';');

т.е. без кавычек, только апострофы?

FRZ 16-04-2009 15:42 1095857

CyberDaemon, спасибо, разобрался! Оказалось в таблицах действительно типы разные указаны были. Работает вариант
Цитата:

Цитата CyberDaemon
query1.sql.ADD('INSERT INTO Tekushiy_zakaz.db (куча всего) SELECT тажекуча FROM Tekushiy_klient.db WHERE IDg='+dbgrid2.SelectedField.Text+';'); »



Время: 09:35.

Время: 09:35.
© OSzone.net 2001-