![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
D7+ IB7.5 Помогите с запросом [D7]
REM02 © (2006-11-24 06:42:00)Как правильно задать тип реременной FFF и преобразовать
данные полученые из Edit2 для запроса
var
FFF :???
begin
FFF := ???(Form1.Edit2.Text);
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select Pole1 from Tabl WHERE (Pole2 = ' + FFF + ')');
IBQuery3.Open;
Pole2 имет тип VARCHAR
REM02 (2006-11-25 23:48:00) [1]Спасибо!!!
alexandr (2006-11-25 20:51:00) [2]потому что если внутри внутри строковой константы необходимо написать апостроф, то его необходимо продублировать.
Возьми отладчик и потренируйся до прояснения вопроса. ;)
потом в качестве домашнего задания подумай как тоже самое написать используя коды символов.
1) с помощью функции char
2) с помощью #
REM02 (2006-11-25 20:22:00) [3]Спасибо, я это понял, все работает.
Вопрос - почему три апострофа(')
alexandr (2006-11-25 17:46:00) [4]короче, тут только '
в моем коде везде.
REM02 (2006-11-25 16:31:00) [5]Да я уже думал что моя ошибка в неверном воспиятии с экрана.
Ну всеже обьясни, пожалуйста про все эти апостроыф и т.д.
А то ведь в "учебниках... аля инет" читается точно " '
alexandr (2006-11-25 12:18:00) [6]чувак, ты копи пасте сделай моего кода, чтоб одинарные и двойные кавычки не путать.
REM02 (2006-11-25 09:11:00) [7]В случае (Pole2 = '' ' + FFF + ' '') пишет "Column unknown 00021' "(введено 00021)
В случае (Pole2 = ' ' + FFF + ' ') пишет "арифметик exception...or string truncation."..(введено 00021)
Уважающие себя гуру, обьясните мне темному про эти кавычки, апострофы,параметры!!!
Учусь по возможно вашим же публикациям в инете
alexandr (2006-11-25 07:37:00) [8]ошибку приведи.
REM02 (2006-11-24 20:42:00) [9](6)
Так ведь не работает же ругается на типы данных. Потому и спрашивал Pole2 имет тип VARCHAR(255)
alexandr (2006-11-24 20:23:00) [10]var
FFF :string;
begin
FFF := Form1.Edit2.Text;
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select Pole1 from Tabl WHERE (Pole2 = ''' + FFF + ''')');
IBQuery3.Open;
REM02 (2006-11-24 19:32:00) [11]Ну и как поступить???
ANB (2006-11-24 11:56:00) [12]
> И что ты сделал когда узнал?
Чуть не убил его. Мы писали 2 проги, которые взаимодействовали по данным. И нам надо было связывать текстовые поля. Время от времени они не связывались. Никак не мог понять почему, пока не залез в его код - он чтобы не мучится, просто выкидывал все неудобные символы из строк. А я честно пихал все как есть в параметры. И строки становились разными, связка рвалась.
Anatoly Podgoretsky (2006-11-24 11:32:00) [13]> ANB (24.11.2006 11:10:02) [2]
> тоже всегда клеил,
И что ты сделал когда узнал?
ANB (2006-11-24 11:10:00) [14]
> IBQuery1.SQL.Add('select Pole1 from Tabl WHERE (Pole2 =
> ' + FFF + ')');
Млин, ни фига не понимаю - кто дает ученикам такие дебильные примеры ?
Практически каждый день вылезают вопросы, в которых параметры передаются в запрос склейкой самого запроса.
Я был знаком с программистом, который при 3-х летнем опыте не знал о параметрах и тоже всегда клеил, наступая на все возможные грабли.
Кто их так учит ?
Sergey13 (2006-11-24 08:28:00) [15]Надо не переменные использовать, а параметры запроса. Это те-же пеерменные, но со стороны сервера
select Pole1 from Tabl WHERE Pole2=:Pole2