Форум: "Базы";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];
ВнизПараметр в запросе Найти похожие ветки
← →
BJValentine (2002-08-19 16:05) [0]Есть запрос:
insert into SqlBase (field1,field2)
select field1,field2
from OpenRowset("MSDASQL.1", "Driver={Microsoft dbase Driver (*.dbf)};DBQ=c:\bases;", "select field1,field2 from DbfBase where field2>=""100000""")
- работает
а как сделать так, чтобы в условии where можно было подставить параметр?
← →
Mike Kouzmine (2002-08-19 16:08) [1]field2>=:Chislo
SqlBase.ParamByName("Chislo").AsFloat := 100000;
← →
BJValentine (2002-08-19 17:04) [2]Sorry, я задал немного не правильно вопрос. Этот запрос мне надо впихнуть в хранимую процедуру.
← →
Mike Kouzmine (2002-08-19 17:09) [3]StoredProc1.ParamByName("Chislo").AsFloat := 100000;
← →
BJValentine (2002-08-19 17:13) [4]Это всё понятно (кроме AsFloat, 100000 в данном случае строка),
ну а как в самой хранимой процедуре, в самом запросе влепить этот параметр.
← →
Mike Kouzmine (2002-08-19 17:18) [5]Ну ты же пишешь ее. Она имеет входящие параметры. Когда ты связываешь StoredProc с существующей хр проц, то в св-ве Param они становятся доступны.
← →
BJValentine (2002-08-19 17:29) [6]Да это всё понятно, как должен выглядеть сам запрос?
← →
sniknik (2002-08-19 18:30) [7]в OpenRowset передавать параметр с сожалению нельзя (по моему)
а процедуре это нужно, можно так
DECLARE @ST CHAR(30)
SET @ST = "Sony E-3431 D телевизор"
SELECT * FROM OpenDataSource("Microsoft.Jet.OLEDB.4.0",
"Data Source="D:\";Extended properties=dBase IV")...GOODS WHERE FIRM_NAME = @ST
поправь под себя.
к еще большему сожалению в OpenDataSource не получается использовать драйвера ODBC а у OLEDB в подобных связках есть маленький глючок (по крайней мере раньше был) память расходуется почем зря и не отдается. У меня сервер это вешало после 2х недель работы без перезагрузки. прим. на 1000-м вызове.
в общемто ограничения можно и сверху (по времени больше за счет того что вся таблица выбирается зато без глюков)
аналог предыдущего запроса
DECLARE @ST CHAR(30)
SET @ST = "Sony E-3431 D телевизор"
SELECT @ST
select * from OpenRowset("MSDASQL.1", "Driver={Microsoft dbase Driver (*.dbf)};DBQ=D:\", "select * FROM GOODS") WHERE FIRM_NAME=@ST
← →
BJValentine (2002-08-19 19:54) [8]Жаль
← →
sniknik (2002-08-19 20:11) [9]А чего жалеть используй то что есть. Или в мелкософт пиши в жалобную книгу (я кстати пробовал полный игнор).
и еще во второй пример "SELECT @ST" вкрался по ошибке, понял уже наверное. тока на секунду отвернулся он раз и вкрался. :-))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.02 c