Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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;
использу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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.07 c
15-1185246228
Pazitron_Brain
2007-07-24 07:03
2007.08.19
Ружье в Денди


2-1185191496
gen
2007-07-23 15:51
2007.08.19
Прошу помощи мастера


15-1184921014
Kolan
2007-07-20 12:43
2007.08.19
Однако не появления BDS2006 на TaskBar е сильно виляет на работу.


1-1181373282
ambhtr
2007-06-09 11:14
2007.08.19
Выгрузка результатов в Word


1-1181165424
Angakok
2007-06-07 01:30
2007.08.19
Аналог fmod





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский