Форум: "Базы";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Базы";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.062 c