Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.19;
Скачать: CL | DM;

Вниз

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;
использу1
form1.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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.022 c
15-1184927207
Layner
2007-07-20 14:26
2007.08.19
Эксперты по НДС !


15-1184940907
VirEx
2007-07-20 18:15
2007.08.19
посоветуйте кондиционер


2-1184669268
Ivolg
2007-07-17 14:47
2007.08.19
Путь


2-1185025167
CatAlone
2007-07-21 17:39
2007.08.19
Drag and drop и extractfilename


2-1185404147
Альберт
2007-07-26 02:55
2007.08.19
и еще об окне поверх остальных