🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych.msaccess
6 messages
6 total messages Started by siwy5 Wed, 10 Mar 2021 10:59
Wartość zwracana przez procedurę SQL
#137743
Author: siwy5
Date: Wed, 10 Mar 2021 10:59
9 lines
1359 bytes
Witam

Procedura wykonuje się poprawnie ale powinna mi zwrócić wartość (ilośćGodzin) Jak dostać się do zwracanej wartości?

conn.Execute "TestProcSql 1, 2021, 2", ile
ile zawsze zwraca 1

Pozdrawiam
Daniel
Re: Wartość zwracana przez procedurę SQL
#137747
Author: siwy5
Date: Thu, 11 Mar 2021 13:05
40 lines
2602 bytes
środa, 10 marca 2021 o 11:59:45 UTC+1 siwy5 napisał(a):
> Witam 
> 
> Procedura wykonuje się poprawnie ale powinna mi zwrócić wartość (ilośćGodzin) Jak dostać się do zwracanej wartości? 
> 



> conn.Execute "TestProcSql 1, 2021, 2", ile 
> ile zawsze zwraca 1 
> 
> Pozdrawiam 
> Daniel



Coś się dogrzebałem - ale nie działa

Set cmd = New ADODB.Command
     cmd.ActiveConnection = cn
     cmd.CommandType = adCmdStoredProc
     cmd.CommandText = "proceduraSQL"		'proceduraSQL( @Id int , @Rok int , @Mc int )
     
     cmd.Parameters.Append cmd.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 0)
     cmd.Parameters.Append cmd.CreateParameter("Id", adInteger, adParamInput, 4, 1)
     cmd.Parameters.Append cmd.CreateParameter("Rok", adInteger, adParamInput, 4, 2021)
     cmd.Parameters.Append cmd.CreateParameter("Mc", adInteger, adParamInput, 4, 2)
      
   cmd.Execute Options:=adExecuteNoRecords
     
     
     msgbox cmd.Parameters("RETURN_VALUE")         'tu powinna zwrócić wartość ale zwraca 0
     msgbox cmd.Parameters("PrcId")



Pomoże ktoś?

Pozdrawiam
Daniel
Re: Wartość zwracana przez procedurę SQL
#137759
Author: wardzyn
Date: Fri, 12 Mar 2021 00:21
48 lines
2959 bytes
czwartek, 11 marca 2021 o 14:05:07 UTC+1 siwy5 napisał(a):
> środa, 10 marca 2021 o 11:59:45 UTC+1 siwy5 napisał(a): 
> > Witam 
> > 
> > Procedura wykonuje się poprawnie ale powinna mi zwrócić wartość (ilośćGodzin) Jak dostać się do zwracanej wartości? 
> > 
> 
> 
> 
> > conn.Execute "TestProcSql 1, 2021, 2", ile 
> > ile zawsze zwraca 1 
> > 
> > Pozdrawiam 
> > Daniel
> Coś się dogrzebałem - ale nie działa 
> 
> Set cmd = New ADODB.Command 
> cmd.ActiveConnection = cn 
> cmd.CommandType = adCmdStoredProc 
> cmd.CommandText = "proceduraSQL" 'proceduraSQL( @Id int , @Rok int , @Mc int ) 
> 
> cmd.Parameters.Append cmd.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 0) 
> cmd.Parameters.Append cmd.CreateParameter("Id", adInteger, adParamInput, 4, 1) 
> cmd.Parameters.Append cmd.CreateParameter("Rok", adInteger, adParamInput, 4, 2021) 
> cmd.Parameters.Append cmd.CreateParameter("Mc", adInteger, adParamInput, 4, 2) 
> 
> cmd.Execute Options:=adExecuteNoRecords 
> 
> 
> msgbox cmd.Parameters("RETURN_VALUE") 'tu powinna zwrócić wartość ale zwraca 0 
> msgbox cmd.Parameters("PrcId") 
> 
> 
> 
> Pomoże ktoś? 
> 
> Pozdrawiam 
> Daniel

po pierwsze:
wrzuć może jak wygląda procedurka.
Zależy co chcesz odczytać (czyli de facto jak wygląda procedura) - parametr out (adParamOutput) z procedury czy return (adParamReturnValue).

> cmd.Parameters.Append cmd.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 0) 
to zero na końcu zbędne.

Pozdr
Wardzyn
Re: Wartość zwracana przez procedurę SQL
#137760
Author: siwy5
Date: Fri, 12 Mar 2021 06:01
65 lines
3372 bytes
piątek, 12 marca 2021 o 01:21:01 UTC+1 wardzyn napisał(a):
> czwartek, 11 marca 2021 o 14:05:07 UTC+1 siwy5 napisał(a): 
> > środa, 10 marca 2021 o 11:59:45 UTC+1 siwy5 napisał(a): 
> > > Witam 
> > > 
> > > Procedura wykonuje się poprawnie ale powinna mi zwrócić wartość (ilośćGodzin) Jak dostać się do zwracanej wartości? 
> > > 
> > 
> > 
> > 
> > > conn.Execute "TestProcSql 1, 2021, 2", ile 
> > > ile zawsze zwraca 1 
> > > 
> > > Pozdrawiam 
> > > Daniel 
> > Coś się dogrzebałem - ale nie działa 
> > 
> > Set cmd = New ADODB.Command 
> > cmd.ActiveConnection = cn 
> > cmd.CommandType = adCmdStoredProc 
> > cmd.CommandText = "proceduraSQL" 'proceduraSQL( @Id int , @Rok int , @Mc int ) 
> > 
> > cmd.Parameters.Append cmd.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 0) 
> > cmd.Parameters.Append cmd.CreateParameter("Id", adInteger, adParamInput, 4, 1) 
> > cmd.Parameters.Append cmd.CreateParameter("Rok", adInteger, adParamInput, 4, 2021) 
> > cmd.Parameters.Append cmd.CreateParameter("Mc", adInteger, adParamInput, 4, 2) 
> > 
> > cmd.Execute Options:=adExecuteNoRecords 
> > 
> > 
> > msgbox cmd.Parameters("RETURN_VALUE") 'tu powinna zwrócić wartość ale zwraca 0 
> > msgbox cmd.Parameters("PrcId") 
> > 
> > 
> > 
> > Pomoże ktoś? 
> > 
> > Pozdrawiam 
> > Daniel
> po pierwsze: 
> wrzuć może jak wygląda procedurka. 
> Zależy co chcesz odczytać (czyli de facto jak wygląda procedura) - parametr out (adParamOutput) z procedury czy return (adParamReturnValue).
> > cmd.Parameters.Append cmd.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 0)
> to zero na końcu zbędne. 
> 
> Pozdr 
> Wardzyn




Procedura poniżej.  Nigdzie nie widze parametrów OUT i RETURN. 
Odczytać chcę z niej @Wynik

ALTER PROCEDURE [db].[proceduraSQL] ( @Id int , @Rok int , @Mc int )
As
Begin
DECLARE @Wynik int
...
...
...

select @Wynik = .....
select @Wynik
END
Re: Wartość zwracana przez procedurę SQL
#137761
Author: wardzyn
Date: Fri, 12 Mar 2021 21:17
70 lines
3656 bytes
piątek, 12 marca 2021 o 07:01:43 UTC+1 siwy5 napisał(a):
> piątek, 12 marca 2021 o 01:21:01 UTC+1 wardzyn napisał(a): 
> > czwartek, 11 marca 2021 o 14:05:07 UTC+1 siwy5 napisał(a): 
> > > środa, 10 marca 2021 o 11:59:45 UTC+1 siwy5 napisał(a): 
> > > > Witam 
> > > > 
> > > > Procedura wykonuje się poprawnie ale powinna mi zwrócić wartość (ilośćGodzin) Jak dostać się do zwracanej wartości? 
> > > > 
> > > 
> > > 
> > > 
> > > > conn.Execute "TestProcSql 1, 2021, 2", ile 
> > > > ile zawsze zwraca 1 
> > > > 
> > > > Pozdrawiam 
> > > > Daniel 
> > > Coś się dogrzebałem - ale nie działa 
> > > 
> > > Set cmd = New ADODB.Command 
> > > cmd.ActiveConnection = cn 
> > > cmd.CommandType = adCmdStoredProc 
> > > cmd.CommandText = "proceduraSQL" 'proceduraSQL( @Id int , @Rok int , @Mc int ) 
> > > 
> > > cmd.Parameters.Append cmd.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 0) 
> > > cmd.Parameters.Append cmd.CreateParameter("Id", adInteger, adParamInput, 4, 1) 
> > > cmd.Parameters.Append cmd.CreateParameter("Rok", adInteger, adParamInput, 4, 2021) 
> > > cmd.Parameters.Append cmd.CreateParameter("Mc", adInteger, adParamInput, 4, 2) 
> > > 
> > > cmd.Execute Options:=adExecuteNoRecords 
> > > 
> > > 
> > > msgbox cmd.Parameters("RETURN_VALUE") 'tu powinna zwrócić wartość ale zwraca 0 
> > > msgbox cmd.Parameters("PrcId") 
> > > 
> > > 
> > > 
> > > Pomoże ktoś? 
> > > 
> > > Pozdrawiam 
> > > Daniel 
> > po pierwsze: 
> > wrzuć może jak wygląda procedurka. 
> > Zależy co chcesz odczytać (czyli de facto jak wygląda procedura) - parametr out (adParamOutput) z procedury czy return (adParamReturnValue). 
> > > cmd.Parameters.Append cmd.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 0) 
> > to zero na końcu zbędne. 
> > 
> > Pozdr 
> > Wardzyn
> Procedura poniżej. Nigdzie nie widze parametrów OUT i RETURN. 
> Odczytać chcę z niej @Wynik 
> 
> ALTER PROCEDURE [db].[proceduraSQL] ( @Id int , @Rok int , @Mc int ) 
> As 
> Begin 
> DECLARE @Wynik int 
> ... 
> ... 
> ... 
> 
> select @Wynik = ..... 
> select @Wynik 
> END

w procedurze na końcu zamiast
> select @Wynik 
return @Wynik 

pozdro 

Wardzyn
Re: Wartość zwracana przez procedurę SQL
#137764
Author: siwy5
Date: Tue, 16 Mar 2021 11:58
78 lines
3930 bytes
piątek, 12 marca 2021 o 22:17:22 UTC+1 wardzyn napisał(a):
> piątek, 12 marca 2021 o 07:01:43 UTC+1 siwy5 napisał(a): 
> > piątek, 12 marca 2021 o 01:21:01 UTC+1 wardzyn napisał(a): 
> > > czwartek, 11 marca 2021 o 14:05:07 UTC+1 siwy5 napisał(a): 
> > > > środa, 10 marca 2021 o 11:59:45 UTC+1 siwy5 napisał(a): 
> > > > > Witam 
> > > > > 
> > > > > Procedura wykonuje się poprawnie ale powinna mi zwrócić wartość (ilośćGodzin) Jak dostać się do zwracanej wartości? 
> > > > > 
> > > > 
> > > > 
> > > > 
> > > > > conn.Execute "TestProcSql 1, 2021, 2", ile 
> > > > > ile zawsze zwraca 1 
> > > > > 
> > > > > Pozdrawiam 
> > > > > Daniel 
> > > > Coś się dogrzebałem - ale nie działa 
> > > > 
> > > > Set cmd = New ADODB.Command 
> > > > cmd.ActiveConnection = cn 
> > > > cmd.CommandType = adCmdStoredProc 
> > > > cmd.CommandText = "proceduraSQL" 'proceduraSQL( @Id int , @Rok int , @Mc int ) 
> > > > 
> > > > cmd.Parameters.Append cmd.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 0) 
> > > > cmd.Parameters.Append cmd.CreateParameter("Id", adInteger, adParamInput, 4, 1) 
> > > > cmd.Parameters.Append cmd.CreateParameter("Rok", adInteger, adParamInput, 4, 2021) 
> > > > cmd.Parameters.Append cmd.CreateParameter("Mc", adInteger, adParamInput, 4, 2) 
> > > > 
> > > > cmd.Execute Options:=adExecuteNoRecords 
> > > > 
> > > > 
> > > > msgbox cmd.Parameters("RETURN_VALUE") 'tu powinna zwrócić wartość ale zwraca 0 
> > > > msgbox cmd.Parameters("PrcId") 
> > > > 
> > > > 
> > > > 
> > > > Pomoże ktoś? 
> > > > 
> > > > Pozdrawiam 
> > > > Daniel 
> > > po pierwsze: 
> > > wrzuć może jak wygląda procedurka. 
> > > Zależy co chcesz odczytać (czyli de facto jak wygląda procedura) - parametr out (adParamOutput) z procedury czy return (adParamReturnValue). 
> > > > cmd.Parameters.Append cmd.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 0) 
> > > to zero na końcu zbędne. 
> > > 
> > > Pozdr 
> > > Wardzyn 
> > Procedura poniżej. Nigdzie nie widze parametrów OUT i RETURN. 
> > Odczytać chcę z niej @Wynik 
> > 
> > ALTER PROCEDURE [db].[proceduraSQL] ( @Id int , @Rok int , @Mc int ) 
> > As 
> > Begin 
> > DECLARE @Wynik int 
> > ... 
> > ... 
> > ... 
> > 
> > select @Wynik = ..... 
> > select @Wynik 
> > END
> w procedurze na końcu zamiast 
> > select @Wynik 
> return @Wynik 
> 
> pozdro 
> 
> Wardzyn




Dzięki serdeczne. Działa z Return-em

Pozdrawiam
Daniel
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads