Войти

Показать полную графическую версию : [решено] SQL-запрос на Delphi


FRZ
16-04-2009, 14:08
Итак, имеется запрос вида:

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
Сам 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
CyberDaemon, спасибо, разобрался! Оказалось в таблицах действительно типы разные указаны были. Работает вариант query1.sql.ADD('INSERT INTO Tekushiy_zakaz.db (куча всего) SELECT тажекуча FROM Tekushiy_klient.db WHERE IDg='+dbgrid2.SelectedField.Text+';'); »




© OSzone.net 2001-2012