MATRIZ NO SQL
Galera tem como criar uma matriz em uma store procedura no sql? se tem como seria? Obrigado, valeu
Citação:VPVJUNIOR escreveu:
Galera tem como criar uma matriz em uma store procedura no sql? se tem como seria? Obrigado, valeu
Matriz ???
Cara, creio que não seja possÃvel, mas informe melhor o que vc pretende fazer, talvez achamos outra solução.
é seguinte:
estou querendo armazenar 2 campos do resultado de um select através de um while, como faço? por isso a idéia de criar uma matriz com 2 elementos.
estou querendo armazenar 2 campos do resultado de um select através de um while, como faço? por isso a idéia de criar uma matriz com 2 elementos.
Carinha, poderia ser mais especÃfico? Usar matriz não tem como... mas de repente a gente acha uma alternativa!
Deixe tentar explicar melhor.
Qero fazer isso no SQL:
Set RS1 = New adodb.Recordset
RS1.Open "SELECT Count(*) as QTD FROM ARTIGOS", DBCon,
Dim Conta as integer
Dim Campos(RS1!QTD,2) as String
Set RS1 = New adodb.Recordset
RS1.Open "SELECT COD_PRODUTO,COD_SETOR FROM ARTIGOS", DBCon, adOpenKeyset, adLockOptimistic
Conta=1
RS1.MoveFirst
While Not RS1.EOF
Campos(Conta,1)=RS1!COD_PRODUTO
Campos(Conta,2)=RS1!COD_SETOR
Conta = Conta + 1
RS1.MoveNext
Wend
Teria como galera, espero ter esclarecido melhor,valeu
Qero fazer isso no SQL:
Set RS1 = New adodb.Recordset
RS1.Open "SELECT Count(*) as QTD FROM ARTIGOS", DBCon,
Dim Conta as integer
Dim Campos(RS1!QTD,2) as String
Set RS1 = New adodb.Recordset
RS1.Open "SELECT COD_PRODUTO,COD_SETOR FROM ARTIGOS", DBCon, adOpenKeyset, adLockOptimistic
Conta=1
RS1.MoveFirst
While Not RS1.EOF
Campos(Conta,1)=RS1!COD_PRODUTO
Campos(Conta,2)=RS1!COD_SETOR
Conta = Conta + 1
RS1.MoveNext
Wend
Teria como galera, espero ter esclarecido melhor,valeu
Para isso não tem como fazer em Stored Procedure, mas vc poderia criar uma tabela temporária e armazenar esses dois campos. Fora isso, só controlando pelo programa mesmo!
Cara, pq que ao invés de usar o COUNT vc não usa o RecourdCount do recordset:
rst.CursorLocation = adUseClient
rst.RecordCount
Teste aà e qualquer dúvida poste...flw
rst.CursorLocation = adUseClient
rst.RecordCount
Dim Conta as integer
Dim Campos(0 ,2) as String
Set RS1 = New adodb.Recordset
RS1.CursorLocation = adUseClient
RS1.Open "SELECT COD_PRODUTO,COD_SETOR FROM ARTIGOS", DBCon, adOpenKeyset, adLockOptimistic
ReDim Campos(RS1.RecordCount, 2) As String
RS1.MoveFirst
For Conta = 1 To rst.RecourdCount
Campos(Conta,1)=RS1!COD_PRODUTO
Campos(Conta,2)=RS1!COD_SETOR
RS1.MoveNext
Next Conta
Teste aà e qualquer dúvida poste...flw
Mas Magayver, ele quer fazer isto em uma Stored Procedure no SQL Server, não em VB.
Fiz um pequeno prototico utilizando o Banco de Dados de Exemplo Northwind
ECLARE @CodigoProduto INT
DECLARE @DescricaoProduto Varchar(100)
DECLARE @QuantReg INT
DECLARE @TabMatriz TABLE(CodigoProduto Int,DescricaoProduto Varchar(100))
DECLARE Rs CURSOR FOR
SELECT ProductId,ProductName
FROM Products
OPEN Rs
FETCH NEXT From Rs INTO @CodigoProduto,@DescricaoProduto
WHILE @@FETCH_STATUS = 0
BEGIN
SET @QuantReg = ISNULL(@QuantReg,0) + 1
INSERT INTO @TabMatriz(CodigoProduto,DescricaoProduto)
SELECT @CodigoProduto,@DescricaoProduto
FETCH NEXT From Rs INTO @CodigoProduto,@DescricaoProduto
END
CLOSE Rs
DEALLOCATE Rs
Select * FROM @TabMatriz
Select @QuantReg as QuantidadeRegistros
Ou senão você pode utiliza este exemplo do MVP Marcelo Colla (mcolla)
http://www.forumweb.com.br/artigos/artigos.php?action=file&id=321
ECLARE @CodigoProduto INT
DECLARE @DescricaoProduto Varchar(100)
DECLARE @QuantReg INT
DECLARE @TabMatriz TABLE(CodigoProduto Int,DescricaoProduto Varchar(100))
DECLARE Rs CURSOR FOR
SELECT ProductId,ProductName
FROM Products
OPEN Rs
FETCH NEXT From Rs INTO @CodigoProduto,@DescricaoProduto
WHILE @@FETCH_STATUS = 0
BEGIN
SET @QuantReg = ISNULL(@QuantReg,0) + 1
INSERT INTO @TabMatriz(CodigoProduto,DescricaoProduto)
SELECT @CodigoProduto,@DescricaoProduto
FETCH NEXT From Rs INTO @CodigoProduto,@DescricaoProduto
END
CLOSE Rs
DEALLOCATE Rs
Select * FROM @TabMatriz
Select @QuantReg as QuantidadeRegistros
Ou senão você pode utiliza este exemplo do MVP Marcelo Colla (mcolla)
http://www.forumweb.com.br/artigos/artigos.php?action=file&id=321
ELUCIMAR,
baseado nesse seu exemplo, consegui extrair alguns comando que me foram úteis, podendo assim solucionar meu problema sem ter que usar uma tabela temporária.
Valeu e obrigado a todos que tentaram me ajudar.
baseado nesse seu exemplo, consegui extrair alguns comando que me foram úteis, podendo assim solucionar meu problema sem ter que usar uma tabela temporária.
Valeu e obrigado a todos que tentaram me ajudar.
Tópico encerrado , respostas não são mais permitidas