Форум: "Начинающим";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
ВнизMS SQL ADO Найти похожие ветки
← →
Iggor (2007-07-17 15:37) [0]Добрый день! Пытаюсь создать запрос через ADOQuery вида:
form1.ADOQuery1.SQL.Add("select * from :abc");
form1.ADOQuery1.Parameters[0].Value:="TS_20070611";
form1.ADOQuery1.Open;
выдаёт ошибку...
если без параметра:
form1.ADOQuery1.SQL.Add("select * from TS_20070611);
form1.ADOQuery1.Open;
то всё работает....
подскажите как быть, пожалуйста...
← →
AZIZE © (2007-07-17 15:47) [1]
> выдаёт ошибку...
какую?
Попробуй кажждый раз передform1.ADOQuery1.Parameters[0].Value:="TS_20070611";
удалять и добавлять параметр
и вместоform1.ADOQuery1.Open;
использу1form1.ADOQuery1.Active:=False;
form1.ADOQuery1.Active:=True;
← →
gentos (2007-07-17 15:50) [2]
> AZIZE ©
не знаешь, так лучше не пиши :)
← →
Ega23 © (2007-07-17 15:51) [3]
form1.ADOQuery1.Open;
использу1
form1.ADOQuery1.Active:=False;
form1.ADOQuery1.Active:=True;
Пипец. Вопрос: зачем?
> form1.ADOQuery1.SQL.Add("select * from :abc");
Я, откровенно говоря, не сильно параметры ковырял. Но вроде как параметром должно считаться то, что после =: стоит. Голый параметр, вроде, не прокатит.
← →
Anatoly Podgoretsky © (2007-07-17 15:53) [4]Покатит, а вот для метаданных ни за что.
← →
Anatoly Podgoretsky © (2007-07-17 15:54) [5]Если непонятно, то сервер получит строку "select * from ?"
Что ему с ней делать то?
← →
Сергей М. © (2007-07-17 16:13) [6]
> а вот для метаданных ни за что
И для метаданных в ряде случаев "покатит".
Но пока начальник транспортного цеха не озвучил состояние св-ва ParamCheck, разговор на тему "выдает ошибку" попросту лишен смысла.
← →
Anatoly Podgoretsky © (2007-07-17 16:16) [7]Не стоит рассматривать частные случаи
← →
Сергей М. © (2007-07-17 16:21) [8]
> Не стоит рассматривать частные случаи
Тем не менее мне самому интересно, действительно ли это "не покатит" для MS SQL OLEDB, потому как для, к примеру, для VFPOLEDB этот конкретный случай (с параметрически задаваемым FROM-clause) вполне успешно "едет и не тарахтит"
← →
Плохиш © (2007-07-17 16:25) [9]
> Iggor (17.07.07 15:37)
Нельзя задавать имя таблицы в качестве параметра.
← →
Сергей М. © (2007-07-17 16:57) [10]
> Нельзя задавать имя таблицы в качестве параметра
Рискну возразить.
Успешно пользовал сабж в связке ADOConnection(VFPOLEDB) <-> ADODataSet
Ради интереса непосредстевенно перед установкой значения параметра я установил его DataType=ftUnknown и тут же заполучил отказ. Не о нем ли автор ведет речь ? Сдается мне - о нем)... Т.е. СУБД здесь, похоже, абсолютно ни причем.
← →
Игорь Шевченко © (2007-07-17 17:04) [11]От СУБД и провайдера зависит, можно или нельзя задавать что-либо в качестве параметра.
← →
Сергей М. © (2007-07-17 17:06) [12]
> От СУБД и провайдера зависит
Сомневаюсь ..
← →
sniknik © (2007-07-17 17:07) [13]> Т.е. СУБД здесь, похоже, абсолютно ни причем.
причем. большинство не поддерживает, VFP OLEDB/ODBC частный случай. может и еще есть но...
← →
sniknik © (2007-07-17 17:07) [14]> Сомневаюсь ..
не сомневайся, проверь.
← →
Сергей М. © (2007-07-17 17:10) [15]
> не сомневайся, проверь
Не на чем, к сож.
А что, OLEDB-провайдер разве не готовый текст запроса получает от АДО на входе ?
Я просто не в курсе, но подозреваю ..
← →
Игорь Шевченко © (2007-07-17 17:26) [16]Сергей М. © (17.07.07 17:10) [15]
> А что, OLEDB-провайдер разве не готовый текст запроса получает
> от АДО на входе ?
Не обязательно. Если сервер умеет с параметризованными запросами работать, то зачем ADO или провайдер будет ими заниматься, нас па ?
← →
sniknik © (2007-07-17 17:28) [17]> А что, OLEDB-провайдер разве не готовый текст запроса получает от АДО на входе ?
если бы так было то смысла в параметрах было бы мало, что самому запрос составить, что на АДО переложить...
нет, передается запрос и коллекция параметров, а вот где это объединяется, на каком этапе, и объединяется ли вообще х.з., от "субд и провайдера зависит ...".
← →
Anatoly Podgoretsky © (2007-07-17 19:26) [18]> Сергей М. (17.07.2007 17:10:15) [15]
Параметры передаются на сервер отдельно от запроса.
Сервер разбирает только запрос и использует полученые параметры.
Запрос компилируется отдельно.
Запрос вида "select * from ?" откомпилировать не возможно.
Автору подойдет макроподстановка или склейка.
← →
azat27 © (2007-07-22 23:31) [19]> Iggor (17.07.07 15:37)
var Str,Str1: String;
...
Str1:="TS_20070611";
Str:="select * from " + Str2;
form1.ADOQuery1.SQL.Text:=Str;
form1.ADOQuery1.Active:=True;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.07 c