Главная страница
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.031 c
6-1160120554
SergeySP
2006-10-06 11:42
2007.03.18
Удалить подвисшее соединение.


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


4-1162868692
Grademax
2006-11-07 06:04
2007.03.18
Как определить HWND кнопки расположенной на чужом окне


2-1172098776
Allexandr
2007-02-22 01:59
2007.03.18
ArrangeIcons


11-1150669782
AndrewHz
2006-06-19 02:29
2007.03.18
WindowsXP.Manifest