Вниз
Скачать: CL | DM;

D7+ IB7.5 Помогите с запросом   Найти похожие ветки 

← →
REM02   (2006-11-24 06:42) [0]

Как правильно задать тип реременной 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


← →
Sergey13 ©   (2006-11-24 08:28) [1]

Надо не переменные использовать, а параметры запроса. Это те-же пеерменные, но со стороны сервера

select Pole1 from Tabl WHERE Pole2=:Pole2


← →
ANB ©   (2006-11-24 11:10) [2]


> IBQuery1.SQL.Add("select Pole1 from Tabl WHERE (Pole2 =
> " + FFF + ")");

Млин, ни фига не понимаю - кто дает ученикам такие дебильные примеры ?
Практически каждый день вылезают вопросы, в которых параметры передаются в запрос склейкой самого запроса.
Я был знаком с программистом, который при 3-х летнем опыте не знал о параметрах и тоже всегда клеил, наступая на все возможные грабли.
Кто их так учит ?


← →
Anatoly Podgoretsky ©   (2006-11-24 11:32) [3]

> ANB  (24.11.2006 11:10:02)  [2]

> тоже всегда клеил,

И что ты сделал когда узнал?


← →
ANB ©   (2006-11-24 11:56) [4]


> И что ты сделал когда узнал?

Чуть не убил его. Мы писали 2 проги, которые взаимодействовали по данным. И нам надо было связывать текстовые поля. Время от времени они не связывались. Никак не мог понять почему, пока не залез в его код - он чтобы не мучится, просто выкидывал все неудобные символы из строк. А я честно пихал все как есть в параметры. И строки становились разными, связка рвалась.


← →
REM02   (2006-11-24 19:32) [5]

Ну и как поступить???


← →
alexandr ©   (2006-11-24 20:23) [6]

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 20:42) [7]

(6)
Так ведь не работает же ругается на типы данных. Потому и спрашивал Pole2  имет тип  VARCHAR(255)


← →
alexandr ©   (2006-11-25 07:37) [8]

ошибку приведи.


← →
REM02   (2006-11-25 09:11) [9]

В случае (Pole2 = "" " + FFF + " "") пишет "Column unknown 00021" "(введено 00021)

В случае (Pole2 = " " + FFF + " ") пишет "арифметик exception...or string truncation."..(введено 00021)

Уважающие себя гуру, обьясните мне темному про эти кавычки, апострофы,параметры!!!
Учусь по возможно вашим же публикациям в инете


← →
alexandr ©   (2006-11-25 12:18) [10]

чувак, ты копи пасте сделай моего кода, чтоб одинарные и двойные кавычки не путать.


← →
REM02   (2006-11-25 16:31) [11]

Да я уже думал что моя ошибка в неверном воспиятии с экрана.
Ну всеже обьясни, пожалуйста про все эти апостроыф и т.д.
А то ведь в "учебниках... аля инет" читается точно " "


← →
alexandr ©   (2006-11-25 17:46) [12]

короче, тут только "
в моем коде везде.


← →
REM02   (2006-11-25 20:22) [13]

Спасибо, я это понял, все работает.
Вопрос - почему три апострофа(")


← →
alexandr ©   (2006-11-25 20:51) [14]

потому что если внутри внутри строковой константы необходимо написать апостроф, то его необходимо продублировать.
Возьми отладчик и потренируйся до прояснения вопроса. ;)
потом в качестве домашнего задания подумай как тоже самое написать используя коды символов.
1) с помощью функции char
2) с помощью #


← →
REM02   (2006-11-25 23:48) [15]

Спасибо!!!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.031 c
1-1167140545
Priest
2006-12-26 16:42
2007.02.18
Как перебрать все классы, присутвующие в пакете (Run-Time)


15-1169518575
Spider_NET
2007-01-23 05:16
2007.02.18
Конкурс


2-1169918419
Mozgan
2007-01-27 20:20
2007.02.18
Как подсчитать количество открытых окон?


15-1169735064
Chort
2007-01-25 17:24
2007.02.18
Стоимость кабеля для Интернет


15-1169625347
Skier
2007-01-24 10:55
2007.02.18
Магазины иностранной периодики...




   Наверх