Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.18;
Скачать: CL | DM;

Вниз

Выполнение процедуры   Найти похожие ветки 

 
NigthSkif   (2006-12-19 05:50) [0]

Доброе время суток. Скажите, что не так. Есть сторапроцедура

CREATE PROCEDURE qqq(@Fam varchar(20), @id_Nam int, @id_Otch int, @id_Dolgn int, @id_Work int, @Comment Comment, @DBirth varchar(10), @Rez int output)
AS
 Select @Rez=0
 if exists (Select * From dbSotrud
     Where (Fam=RTrim(@Fam) and
    id_Nam=@id_Nam and
    id_Otch=@id_Otch and
    id_Dolgn=@id_Dolgn and
    id_Work=@id_Work and
           Comment=RTrim(@Comment) and
    DBirth=@DBirth))
    begin
       Select @Rez=1
    end

Вызываю ее следующим образом

function Prov: Boolean;
begin
  with DMsp.spdbSotrud_prov do
    begin
       ParamByName("@DBirth").AsString := edtDBirth.Text;
       ParamByName("@Fam").AsString := edtFam.Text;
       ParamByName("@id_Nam").AsInteger := dblcbName.KeyValue;
       ParamByName("@id_Otch").AsInteger := dblcbOtch.KeyValue;
       ParamByName("@id_Dolgn").AsInteger := dblcbDolgnost.KeyValue;
       ParamByName("@id_Work").AsInteger := dblcbWork.KeyValue;
       if mmComment.Text = "" then
         ParamByName("@Comment").Clear
       else
         ParamByName("@Comment").Value := mmComment.Text;

       Open;
       if ParamByName("@Rez").AsInteger = 1 then
         Result := True
       else
         Result := False;
       Close;
    end;
end;

Вываливается сообщение "Error creating cursor handle" когда я открываю стору.


 
Кщд ©   (2006-12-19 08:13) [1]

exec


 
NigthSkif   (2006-12-19 09:23) [2]

Это не работает. Должно быть именно Open.


 
Ega23 ©   (2006-12-19 09:56) [3]


> Это не работает. Должно быть именно Open.


Не работает твоя процедура. Метод Open подразумевает возвращения на клиент RecordSet (можно даже пустой).
RecordSet на клиент возвращается ТОЛЬКО командой Select.
Команды Insert, Update и Delete RecordSet на клиент НЕ ВОЗВРАЩАЮТ.

Чтобы твоя SP заработала, тебе в конце надо добавить строку

CREATE PROCEDURE qqq(@Fam varchar(20), @id_Nam int, @id_Otch int, @id_Dolgn int, @id_Work int, @Comment Comment, @DBirth varchar(10), @Rez int output)
AS
Select @Rez=0
if exists (Select * From dbSotrud
    Where (Fam=RTrim(@Fam) and
   id_Nam=@id_Nam and
   id_Otch=@id_Otch and
   id_Dolgn=@id_Dolgn and
   id_Work=@id_Work and
          Comment=RTrim(@Comment) and
   DBirth=@DBirth))
   begin
      Select @Rez=1
   end
 Select Result=@Rez


Также, почему-то, не вижу Return


 
Ega23 ©   (2006-12-19 09:58) [4]

А вообще - это ужасно. Почему Fam=RTrim(@Fam),  а не Like ?


 
User_Name   (2006-12-19 14:28) [5]

Не пойму, ЗАЧЕМ здесь open нужен :( ведь @Rez определен как output. Ну и делай exec и считывай после этого этот параметр.


 
Ega23 ©   (2006-12-19 14:31) [6]


> ведь @Rez определен как output.


Да. Вот только я чё-то не вижу как :Rez определён...


 
User_Name   (2006-12-19 14:54) [7]

//offtop
Ну дык между строк надо читать :)
//end offtop

@Rez int output


 
Ega23 ©   (2006-12-19 14:56) [8]


> @Rez int output


Это в SP. А в TStoredProc - как?


 
sniknik ©   (2006-12-19 15:07) [9]

> Ну дык между строк надо читать :)
между строк все пишут абсолютно непогрешимый и правильный код... только не у всех он почемуто работает.


 
User_Name   (2006-12-19 15:19) [10]

А что в TStoredProc  %(  (видно что-то я не понимаю) нету ParamType ptInputOutput. И нельзя сделать :

execproc;

И посмотреть что там в

ParamByName("@Rez").AsInteger


 
Ega23 ©   (2006-12-19 15:31) [11]


> А что в TStoredProc  %(  (видно что-то я не понимаю) нету
> ParamType ptInputOutput. И нельзя сделать :
>
> execproc;
>
> И посмотреть что там в
>
> ParamByName("@Rez").AsInteger


пардон, ты это МНЕ предлагаешь проделать?


 
User_Name   (2006-12-19 15:36) [12]

Никому ничего я не предлагаю.


 
Ega23 ©   (2006-12-19 16:00) [13]


> Никому ничего я не предлагаю.


А, [10] это автору было? Тогда сорри.


 
User_Name   (2006-12-19 16:39) [14]

2 Ega23 ©   (19.12.06 16:00) [13]
Да, ведь это автору нужно, видно не совсем стилистически правильно написал :(



Страницы: 1 вся ветка

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

Наверх




Память: 0.5 MB
Время: 0.063 c
2-1172168261
Pr Woll
2007-02-22 21:17
2007.03.18
Опознать строку ввода


1-1168532924
Юрий_К
2007-01-11 19:28
2007.03.18
Попытка доступа к методам класса


2-1172314035
Alex7
2007-02-24 13:47
2007.03.18
TDBLookupComboBox


2-1172563802
Cara
2007-02-27 11:10
2007.03.18
Индекс в DBGrid.


2-1172612130
Lonix
2007-02-28 00:35
2007.03.18
Копирование файла