Форум: "Начинающим";
Текущий архив: 2016.07.24;
Скачать: [xml.tar.bz2];
ВнизКак правильно передать параметры запросу? Найти похожие ветки
← →
Вован Петрович (2014-10-26 13:52) [0]Так:
IBQuery1.SQL.Text:="SELECT * FROM MyTable WHERE MyField=:Name_param1 ";
IBQuery1.ParamByName("Name_param1").AsString := Edit1.text;
if not IBQuery1.Prepared then IBQuery1.Prepare;
IBQuery1.Open;
или так:
IBQuery1.SQL.Text:="SELECT * FROM MyTable WHERE MyField=:Name_param1 ";
IBQuery1.Params[0].AsString := Edit1.text;
if not IBQuery1.Prepared then IBQuery1.Prepare;
IBQuery1.Open;
В чем разница между ParamByName("Name_param1").AsString и Params[0].AsString ?
← →
Kilkennycat © (2014-10-26 14:19) [1]
> В чем разница между ParamByName("Name_param1").AsString
> и Params[0].AsString ?
в удобстве понимания. понять, глядя на ноль, что это "Name_param1" довольно-таки сложно.
кроме того, если точно известно, что нужен "Name_param1" а его там нет, то это можно будет отловить. в случае с прямым указанием пофиг имя.
ну и если порядок в массиве будет нарушен, то тоже кака будет.
← →
Вован Петрович (2014-10-26 14:28) [2]Почему тогда если писать IBQuery1.ParamByName("Name_param1").AsString := Edit1.text вылетает ошибка Name_param1 not found? При втором способе все ОК
← →
Kilkennycat © (2014-10-26 15:12) [3]пробел перед двоеточием поставь.
← →
Kilkennycat © (2014-10-26 15:13) [4]WHERE MyField= :Name_param1
← →
Вован Петрович (2014-10-27 09:53) [5]Я думал компилятор игнорирует пробелы. Выходит они значимы для переменных?
← →
icWasya © (2014-10-27 10:32) [6]Кроме того, некоторые движки SQL не умеют обрабатывать параметры, которые встречаются несколько раз. Например, если :NameParam встретится в тексте запроса два раза, то парсер будет считать, что это два разных параметра, хотя и с одинаковыми именами.(повторяю только некоторые базы, может быть в последних версиях исправлено) И в таком случае обращение по имени будет работать неправильно.
← →
Kilkennycat © (2014-10-27 11:24) [7]
> Вован Петрович (27.10.14 09:53) [5]
> Я думал компилятор игнорирует пробелы.
правильно думал.
но это вообще не компилятор обрабатывает, ему эт просто строка, а движок бд пробелы любит.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2016.07.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c