Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Параметр в запросе [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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо