![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Параметр в запросе [D5, MSSQL, Paradox]
BJValentine © (2002-08-19 16:05:00)Есть запрос:
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 можно было подставить параметр?
sniknik (2002-08-19 20:11:00) [1]А чего жалеть используй то что есть. Или в мелкософт пиши в жалобную книгу (я кстати пробовал полный игнор).
и еще во второй пример "SELECT @ST" вкрался по ошибке, понял уже наверное. тока на секунду отвернулся он раз и вкрался. :-))
BJValentine (2002-08-19 19:54:00) [2]Жаль
sniknik (2002-08-19 18:30:00) [3]в 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 17:29:00) [4]Да это всё понятно, как должен выглядеть сам запрос?
Mike Kouzmine (2002-08-19 17:18:00) [5]Ну ты же пишешь ее. Она имеет входящие параметры. Когда ты связываешь StoredProc с существующей хр проц, то в св-ве Param они становятся доступны.
BJValentine (2002-08-19 17:13:00) [6]Это всё понятно (кроме AsFloat, 100000 в данном случае строка),
ну а как в самой хранимой процедуре, в самом запросе влепить этот параметр.
Mike Kouzmine (2002-08-19 17:09:00) [7]StoredProc1.ParamByName("Chislo").AsFloat := 100000;
BJValentine (2002-08-19 17:04:00) [8]Sorry, я задал немного не правильно вопрос. Этот запрос мне надо впихнуть в хранимую процедуру.
Mike Kouzmine (2002-08-19 16:08:00) [9]field2>=:Chislo
SqlBase.ParamByName("Chislo").AsFloat := 100000;