RECORDSET COM COLUNAS FIXAS

CAUEBIAZIN 06/08/2009 11:52:23
#319112
Bom dia pessoal,

Estou querendo criar um RecordSet com colunas pré-definidas.
realizo 5 consultas ao banco e cada uma delas me retorna uma quantidade diferente de campos, porém, na grande maioria os campos são comuns. Sendo assim, queria que os dados de cada consulta realizada (retorna um RecordSet) fosse armazenado em um único recordSet, para que possa retornar o resultado de todas as consultas em um único objeto.

Alguem pode me ajudar?

Obrigado.
RCMRO 06/08/2009 15:54:28
#319133
CaueBianzi,

Qual SGBD vc está usando?

Se for SQL Server, é fácil via PROCEDURE, retornando o UNION ou criando uma temporária e alimentado ela e retornando a temporária que alimentará o RS.

Algo assim:
---------------
CREATE PROCEDURE pXXX
(
Param1 CHAR(10),
PARAM2 CHAR(20)
) AS

BEGIN
DECLARE @tabela TABLE
(
TabNum CHAR(1),
Coluna01 CHAR(20),
Coluna02 CHAR(20),
Coluna03 INT,
Coluna04 INT
)

INSERT INTO @Tabela
(TabNum, Coluna01, Coluna03, Coluna04)
SELECT [ô]A[ô], Coluna01, Coluna03, Coluna04
FROM Tabela_A
WHERE <Condicoes>

INSERT INTO @Tabela
(TabNum, Coluna01, Coluna02, Coluna04)
SELECT [ô]B[ô], Coluna01, Coluna02, Coluna04
FROM Tabela_B
WHERE <Condicoes>

INSERT INTO @Tabela
(TabNum, Coluna02, Coluna03, Coluna04)
SELECT [ô]C[ô], Coluna02, Coluna03, Coluna04
FROM Tabela_C
WHERE <Condicoes>

.... mais se necessário ....

SELECT TabNum, Coluna01, Coluna02, Coluna03, Coluna04
FROM @Tabela
ORDER BY TabNum
END
--------------------------

e no VB basta executar a PROCEDURE e retornar o valor no RS e pronto.

Espero ter ajudado.
CAUEBIAZIN 06/08/2009 16:21:10
#319134
RCMRO,

Estou utilizando Oracle.

As querys tem que ser executadas separadamente mesmo.
Porém a cada execução eu obtenho um RecordSet comporsto com algumas colunas e registro dentro destas.
Eu gostaria de criar um novo RecordSet que complementaria todas as consultas realizadas, já que grande parte das colunas retornadas em uma consulta aparece na outras.

Exemplo:
Consulta 1 retorna: Nome, Cidade, Endereço;
Consulta 2 retorna: Nome, Endereço, UF;
Consulta 3 retona: Nome, telefone, UF

Quero criar um RecodSet que contenha: Nome, Cidade, Endereço, telefone e UF. Sendo que vou preenche-lo a aprtir de cada consulta, onde os campos que não existirem ficaraão como null.

Acho que agora consegui explicar melhor.
TECLA 06/08/2009 20:17:24
#319144
Resposta escolhida
Serve um RECORDSET DESCONECTADO? A idéia é criá-lo sem a necessidade de uma conexão com um BD e popular com registros temporários.

Private Sub Command1_Click()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset

[ô]Setar como [Ô]sem conexão[Ô]
rs.ActiveConnection = Nothing

[ô]Criar a estrutura da tabela temporária
rs.Fields.Append [Ô]codigo[Ô], adBigInt
rs.Fields.Append [Ô]descricao[Ô], adVarChar, 100
rs.Fields.Append [Ô]valor[Ô], adCurrency
rs.Open

[ô]Inserir registro temporário
rs.AddNew
rs.Fields([Ô]codigo[Ô]) = 1
rs.Fields([Ô]descricao[Ô]) = [Ô]Produto temporario 1[Ô]
rs.Fields([Ô]valor[Ô]) = 17.6
rs.Update
End Sub

Tópico encerrado , respostas não são mais permitidas