Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.039 c
15-1171890622
CCili
2007-02-19 16:10
2007.03.18
Кто-нить играл в World of Warcraft


2-1172484319
Sid-Max
2007-02-26 13:05
2007.03.18
Протоколирование !!!


2-1172573397
VitaliyRilan
2007-02-27 13:49
2007.03.18
Virtual Drive


1-1169552982
Сало
2007-01-23 14:49
2007.03.18
Перехват всех ошибок в консольных приложениях


15-1171890958
TIF
2007-02-19 16:15
2007.03.18
Оцените работу WEB-дизайнера (меня то есть :-)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский