![]() |
|
|
|
|
#1
|
|||
|
|||
|
Доброго времени суток. прошу о помощи:
собственно есть delphi и БД access, работаю с ADOQUERY. вот сам запрос: form1.ADOQuery1.SQL.text:='SELECT имя, фамилия, телефон, [Тип адреса], adress FROM Люди, Точка, точка_люди WHERE Люди.id=точка_люди.id_чел AND Точка.id=точка_люди.id_точки AND точка_люди.id_точки=''' +(form2.DBComboBox2.Text)+'''' ; проблема в последней части запроса: дело в том, что id_точки - числовой тип, а combobox строка. Как мне сделать чтобы комбобокс в запросе воспринимался как число? если просто написать strtoint то будет выдаваться ошибка - в sql запросе должна быть строка а не integer. help |
|
#2
|
|||
|
|||
|
Код:
form1.ADOQuery1.SQL.text:='SELECT имя, фамилия, телефон, [Тип адреса], adress FROM Люди, Точка, точка_люди WHERE Люди.id=точка_люди.id_чел AND Точка.id=точка_люди.id_точки AND точка_люди.id_точки=' + (form2.DBComboBox2.Text); P.S.: просто нужно убрать ковычки, ковычки нужны для текстовых полей, для числовых - не нужны. |
|
#3
|
|||
|
|||
|
Увы, так вылетает "ошибка синтаксиса (пропущен оператор)...."
изначально было просто "несоответствие типов" =( |
|
#4
|
|||
|
|||
|
покажите Ваш запрос, шото мне подсказывает, шо вы там чота не то написали.
|
|
#5
|
|||
|
|||
|
Код:
form1.ADOQuery1.SQL.Clear; form1.ADOQuery1.active:=false; form1.ADOQuery1.SQL.text:='SELECT имя, фамилия, телефон, [Тип адреса], adress FROM Люди, Точка, точка_люди WHERE Люди.id=точка_люди.id_чел AND Точка.id=точка_люди.id_точки AND точка_люди.id_точки=' + (form2.DBComboBox2.Text); form1.ADOQuery1.ExecSQL(); form1.ADOQuery1.active:=true; |
|
#6
|
|||
|
|||
|
ExecSQL не надо, он нужен для INSERT, UPDATE, DELETE запросов, нужно так:
Код:
form1.ADOQuery1.SQL.text := 'SELECT имя, фамилия, телефон, [Тип адреса], adress FROM Люди, Точка, точка_люди WHERE Люди.id = точка_люди.id_чел AND Точка.id = точка_люди.id_точки AND точка_люди.id_точки = ' + form2.DBComboBox2.Text; form1.ADOQuery1.Open; |