2 SELECT STORED PROCEDURE MSSQL
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.
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
************************************************************************************************************
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
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
Axo eu que é por causa dos outros select's dentro dos INSERT... fazendo com que o select nao retorne nada quando chamo do VB
altera a sua procedure para
e no vb basta associar um recordset
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[Ô])
RCMRO, vlw's era issow mesmo :P
Tópico encerrado , respostas não são mais permitidas