Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо