Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.09;
Скачать: 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 вся ветка

Текущий архив: 2002.09.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
14-27219
dikiimouse
2002-08-15 17:41
2002.09.09
Помоните!!! Пишу прогу на VB, запускаю на другом компе, а она не.


1-26970
Tornado
2002-08-27 14:51
2002.09.09
Пдскажите плиз


1-27085
Чудак
2002-08-28 09:51
2002.09.09
Мастера подскажите


1-27086
Юра
2002-08-20 10:00
2002.09.09
Вызов раздела помощи кликом мышки на компоненте


3-26858
Igr
2002-08-19 11:12
2002.09.09
Sql и независимость от регистра символов