Вниз
Скачать: CL | DM;

Параметр в запросе   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
6-27140
Mixir
2002-07-04 11:00
2002.09.09
Помогите плиз. Немогу передать фаил по NMStrmS


1-27082
ssv
2002-08-22 14:12
2002.09.09
Объясните как это работает


14-27158
ReapeR
2002-08-13 11:37
2002.09.09
Delphi 7


14-27177
lak_b
2002-08-13 21:56
2002.09.09
поиск в ListBox е


1-27056
AndrX
2002-08-28 01:52
2002.09.09
вопрос про extended




   Наверх