![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как запустить встроенную процедуру SQL серв.с параметрами [D6, MSSQL]
Lenik © (2005-06-09 14:26:00)date:='06/08/2005';
ADOCommand1.ConnectionString:='DRIVER={SQL Server};SERVER='+host+';DATABASE=Northwind;uid=sa;pwd=qwerty';
ADOCommand1.CommandType :=CmdStoredProc;
ADOCommand1.Parameters.ParamByName(date);
ADOCommand1.CommandText:= 'exec fz_udk';
ADOCommand1.Execute;
Выдаётся сообщение , что не найдена fz_udk
Подскажите ,как правильно написать
sniknik (2005-06-10 10:46:00) [1]это потому, что переменная в дельфях не является для mssql чемто значимым (он про нее (да и про дельфи) вообще ничего не знает).
значение дельфевой переменной надо передать в mssql, лучше параметром, но можно и модификацией запроса.
(и не спрашивай как, тебе приводили по крайней мере 2 варианта, повторятся моветон)
Lenik (2005-06-10 09:49:00) [2]date:='06/08/2005';
ADOCommand1.ConnectionString:='DRIVER={SQL Server};SERVER='+host+';DATABASE=Northwind;uid=sa;pwd=123456';
ADOCommand1.CommandText:= 'exec fz_udk date';
ADOCommand1.Execute;
Подскажите ,почему не работает !Ругается на ошибку конвертации
String в SmallDateTime
sniknik (2005-06-09 18:21:00) [3]о, сразу не заметил. + к тому что передается число а параметр строковый, еще и знак равно ни к чему там (ошибка синтаксиса).
Fay (2005-06-09 17:48:00) [4]date := '20050806';
sniknik (2005-06-09 17:43:00) [5]дата получилось не строка. читай сообщения об ошибках.
Lenik (2005-06-09 17:31:00) [6]date:='06/08/2005';
ADOCommand1.ConnectionString:='DRIVER={SQL Server};SERVER='+host+';DATABASE=Northwind;uid=sa;pwd=123456';
ADOCommand1.CommandText:= 'exec fz_udk ='+date;
ADOCommand1.Execute;
Подскажите ,почему не работает !
Lenik (2005-06-09 17:13:00) [7]в выражении
ADOCommand1.CommandText:= 'exec fz_udk ''06/08/2005''';
мне надо писать не '06/08/2005' ,а переменную ,в которую
надо предварительно записать это значение
Stanislav (2005-06-09 16:57:00) [8]Пишите так:
Exec Fz_udk :DATE
ADOCommand1.Parameters[0].Value:='06/08/2005'
Lenik (2005-06-09 16:49:00) [9]ADOCommand1.ConnectionString:='DRIVER={SQL Server};SERVER='+host+';DATABASE=Northwind;uid=sa;pwd=qwerty';
ADOCommand1.CommandText:= 'exec fz_udk ''06/08/2005''';
ADOCommand1.Execute;
Это работает , но мне надо передавать не конкретное значеие а переменную вида @date='06/08/2005'
в Sql запросе это выглядит так - Exec Fz_udk @date='06/08/2005'
встроенная процедура начинается так :
CREATE PROCEDURE fz_udk
@date varchar(10)
AS
.......
Поскажите ,как это реализовать в делфи
sniknik (2005-06-09 15:37:00) [10]> Не работет , хочет параметр @date ,используемый в процедуре fz_udk
не может быть. если ничего не менялоськроме этих свойств должно работать. (а если поставил CmdStoredProc то и пиши команду по его синтаксису, а проще в дизайн тайме набрать)
Lenik (2005-06-09 15:30:00) [11]ADOCommand1.ConnectionString:='DRIVER={SQL Server};SERVER='+host+';DATABASE=Northwind;uid=sa;pwd=qwerty';
ADOCommand1.CommandText:= 'exec fz_udk ''20050806''';
ADOCommand1.Execute;
Не работет , хочет параметр @date ,используемый в процедуре fz_udk
sniknik (2005-06-09 15:15:00) [12]ADOCommand1.ConnectionString:='DRIVER={SQL Server};SERVER='+host+';DATABASE=Northwind;uid=sa;pwd=qwerty';
ADOCommand1.CommandText:= 'exec fz_udk ''20050806''';
ADOCommand1.Execute;
Lenik (2005-06-09 14:51:00) [13]Всё равно не запускается , требует параметр date ,который используется во встроенной процедуре
stone (2005-06-09 14:35:00) [14]тут уж либо
> ADOCommand1.CommandType := cmdText;
либо
> ADOCommand1.CommandText:= 'fz_udk;1';
> ADOCommand1.Parameters.ParamByName(date);
а вот это вообще не понятно