2 SELECT STORED PROCEDURE MSSQL

X16X 09/03/2010 16:52:06
#336456
  
if exists(select [name] from sysobjects where [name]=[ô]Monitor_Status[ô] and type=[ô]P[ô])

drop procedure Monitor_Status

GO
create procedure Monitor_Status
@opcao varchar(50) = null
AS
BEGIN

create table #tbl_temp(
id varchar(50),
id_pc varchar(50),
bk varchar(50),
data varchar(50))

INSERT INTO
#tbl_temp
(id, id_pc, bk, data)
(SELECT
id,id_pc, bk, data
FROM
tbl_001
WHERE
status_m = [ô]A[ô])

INSERT INTO
#tbl_temp
(id, id_pc, bk, data)
(SELECT
id,id_pc, bk, data
FROM
tbl_001f
WHERE
status_m = [ô]A[ô])

INSERT INTO
#tbl_temp
(id, id_pc, bk, data)
(SELECT
id,id_pc, bk, data
FROM
tbl_104
WHERE
status_m = [ô]A[ô])

select * from #tbl_temp

END


Pessoal antes de mais nada, tenho consciencia que esta nao e a melhor forma...porem é a que vou utilizar mesmo heeheheh (por enquanto)

Entao preciso , que o meu RecordSet do vb pegue os resultados desse select que consta na ultima linha da procedure [Ô] select * from #tbl_temp [Ô]

Quando executo essa SP dentro do gerenciador do MSSQL 2005, funciona legal... porem quando executo essa SP do VB nao funciona.. é como se
o RecordSet nao tivesse conseguido enxergar esse comando select que consta na ultima linha da SP [Ô] select * from #tbl_temp [Ô]

*Obs:. se eu executa um select de dentro do vb ou ate mesmo criar outra SP somente com esse select funciona normalmente, deve ter alguma forma de setar esse return do select , nao estou sabendo como puxar issow do vb.

GRATO.
LLAIA 09/03/2010 17:46:10
#336468
tirei do macoratt - http://www.macoratti.net/ado_sp.htm
************************************************************************************************************

Dim conexao as ADODB.Connection
Dim Rst as ADODB.Recordset

Set Conexao = CreateObject([Ô]ADODB.Connection[Ô])

Conexao.Open [Ô]Provider=SQLOLEDB;[Ô] & _
[Ô]Data Source=MACORATI;Initial Catalog=Northwind;Persist Security Info=False;User ID=sa;[Ô] & _
[Ô]Data Provider=SQLOLEDB.1;[Ô]

Set Rst = conexao.Execute([Ô]EXECUTE [Ten Most Expensive Products][Ô]) [ô] Ten Most Expensives é o nome da SP

list1.clear

While Not Rst.EOF

list1.additem [Ô]Produto : [Ô] & Rst([Ô]TenMostExpensiveProducts[Ô]) & vbtab & [Ô] - [Ô] Preço : [Ô] & Rst([Ô]UnitPrice[Ô])

Rst.Movenext

Wend



Rst.close

Conexao.close

Set Rst = Nothing

Set Conexao = Nothing
X16X 09/03/2010 18:04:58
#336471
poxa! nao funfo ainda... o meu grande problema é que o select no final da procedure nao retorna valor.. mais se eu colocar separado.. em qualquer lugar.. tanto no Sql Analyzer quanto VB funciona legal.

Axo eu que é por causa dos outros select's dentro dos INSERT... fazendo com que o select nao retorne nada quando chamo do VB

RCMRO 09/03/2010 20:32:38
#336482
Resposta escolhida
altera a sua procedure para

IF OBJECT_ID([ô]Monitor_Status[ô],[ô]P[ô]) IS NOT NULL
DROP PROCEDURE Monitor_Status
GO

CREATE PROCEDURE Monitor_Status
AS

SELECT id,id_pc, bk, data
FROM tbl_001 WITH(NOLOCK)
WHERE status_m = [ô]A[ô]

UNION

SELECT id,id_pc, bk, data
FROM tbl_001f WITH(NOLOCK)
WHERE status_m = [ô]A[ô]

UNION

SELECT id,id_pc, bk, data
FROM tbl_004 WITH(NOLOCK)
WHERE status_m = [ô]A[ô]


e no vb basta associar um recordset

Set rs = cn.Execute([Ô]Monitor_Status[Ô])
X16X 11/03/2010 13:11:01
#336646
RCMRO, vlw's era issow mesmo :P
Tópico encerrado , respostas não são mais permitidas