PREENCHER DATASET COM DATAREADER

GUIMORAES 12/04/2011 17:45:43
#371119
Olá Pessoal.

Boa Tarde!

Bom, estou com a seguinte duvida, presciso fazer um relatorio, e neste relatorio pegar dados de duas tabelas.
Até ai tudo bem, o problema é passar os dados consultados ao dataset, tentei um exemplo que o tecla mandou de um recibo com crystal, mas não consigo jogar os dados do datareader ao dataset e gerar o relatorio.

Alguem tem um exemplo de como passar os dados do datareader para determinados campos do dataset?
Obs: utilizo mais de uma tabela na consulta.

Obrigado.
TECLA 12/04/2011 20:41:35
#371138
Resposta escolhida
Poste o código que está usando para CONECTAR e SELECIONAR os dados do BD.
GUIMORAES 12/04/2011 22:04:15
#371154
O que esta declarado em um modulo.
Public FBconn As New FbConnection
Public fbCmd As FbCommand
Public Dblocal As String = LeArquivoINI(nome_arquivo_ini, [Ô]CAMINHO[Ô], [Ô]Bd[Ô], [Ô][Ô])
Public strcon As String = [Ô]User=SYSDBA;Password=masterkey;Database=[Ô] + Dblocal + [Ô];DataSource=localhost;Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=0;Connection timeout=15;Pooling=True;Packet Size=8192;Server Type=0[Ô]
Public DA As FbDataAdapter
Public DR As FbDataReader
Public FBconexao As Boolean

o que esta no comando do botão.

Dim sql As String
Dim DTP_INI As Date
Dim DTP_FIN As Date
DTP_INI = Format(DTP_INICIAL.Value, [Ô]MM/dd/yyyy[Ô])
DTP_FIN = Format(DTP_FINAL.Value, [Ô]MM/dd/yyyy[Ô])

FbConecta()
sql = [Ô]SELECT FUNCIONARIOS.DRT, FUNCIONARIOS.NOME, REFEICAO.DATA, REFEICAO.HORA, REFEICAO.STATUS FROM REFEICAO, FUNCIONARIOS WHERE REFEICAO.FUNCIONARIO = FUNCIONARIOS.CODIGO AND REFEICAO.DATA>= [ô][Ô] & DTP_INI & [Ô][ô] and REFEICAO.DATA <= [ô][Ô] & DTP_FIN & [Ô][ô] ORDER BY FUNCIONARIOS.DRT,REFEICAO.HORA[Ô]

fbCmd = New FbCommand(sql, FBconn)

DR = fbCmd.ExecuteReader
[Ô] aqui iria o codigo do dataset.[Ô]


axo que ja ajuda isto neh
GUIMORAES 13/04/2011 10:13:53
#371177
Alguem ?

Abraços
TECLA 13/04/2011 20:12:11
#371261
Ao invés de utilizar um objeto Command na linha abaixo...
[txt-color=#007100]fbCmd = New FbCommand(sql, FBconn)[/txt-color]
...você pode utilizar um objeto DataAdapter afim que preencher o DataSet.

Exemplo:
Dim da As New FbDataAdapter([Ô]SELECT...[Ô], FBconn)
Dim ds As New DataSet
da.Fill(ds)

GUIMORAES 14/04/2011 15:58:45
#371344
Bom tecla, resouveu meu problema, vou postar o codigo de como ficou para apreciação de todos.
Obrigado.

\\-----------------------------------------------------------------------------------





Citação:



Me.Cursor = Cursors.WaitCursor
Dim sql As String
Dim ds As New DataSet

Dim DTP_INI As String
Dim DTP_FIN As String
DTP_INI = Format(DTP_INICIAL.Value, [Ô]MM/dd/yyyy[Ô])
DTP_FIN = Format(DTP_FINAL.Value, [Ô]MM/dd/yyyy[Ô])

[ô] Faz a conexão com o banco de dados e a Consulta.
FbConecta()
sql = [Ô]SELECT FUNCIONARIOS.DRT, FUNCIONARIOS.NOME, REFEICAO.DATA, REFEICAO.HORA, REFEICAO.STATUS FROM REFEICAO, FUNCIONARIOS WHERE REFEICAO.FUNCIONARIO = FUNCIONARIOS.CODIGO AND REFEICAO.DATA>= [ô][Ô] & DTP_INI & [Ô][ô] and REFEICAO.DATA <= [ô][Ô] & DTP_FIN & [Ô][ô] ORDER BY FUNCIONARIOS.DRT,REFEICAO.DATA,REFEICAO.HORA[Ô]

[ô]Utiliza o objeto DataAdapter
Dim da As New FbDataAdapter(sql, FBconn)

[ô]passa os dados do FbDataAdapter e insere no dataset e no seu datatable
da.Fill(ds, [Ô]REFEICOES[Ô])


[ô]funções para exibir o relatorio.
Dim cr As New REFEICOES
cr.SetDataSource(ds)
RELATORIO.CrystalReportViewer1.ReportSource = cr
RELATORIO.Show()

FbDESConecta()

Me.Dispose()

Me.Cursor = Cursors.Default

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