Usuário com melhor resposta
VS2010 - VB.NET COM ODBC E FIREBIRD

Pergunta
-
Amigos, Boa Noite!
Estou fazendo um trabalho diferente em uma aplicação console (VS2010, VB.Net, MS Access e Firebird).
O trabalho consiste em ler uma tabela no bd Firebird e salvar os dados no MS Access.
Estou usando ODBC tanto para o Access quanto para o FireBird.
No entanto, para minha surpresa, apesar de não ocorrer nenhum erro no procedimento de acesso ao FB, o retorno do SQL não é o mesmo no programa do que ele retorna diretamente no prompt do SGBD.
O código que estou usando é o seguinte:
--------------------------------
Private
Function ObterDadosLi() As
Boolean
Dim connectionString As String
= ODBC_CONNECTION_FB
connectionString = Replace(connectionString,
"<USUARIO>"
, strNmLogin, 1)
connectionString = Replace(connectionString,
"<SENHA>"
, strSenha, 1)
Dim SISGERConnection As Odbc.OdbcConnection = New Odbc.OdbcConnection
(connectionString)
ObterDadosLi =
False
Try
'os dados de LI serão obtidos da tabela CAPALI no FireBird.
Dim strlCmd As
String
Dim intlCount As
Integer
Dim dtDataInicial As Date = Date.Now.AddDays(-CInt(GetParameterValue("PeriodoPesquisa"
)))
Dim dtDataFinal As Date = Date
.Now
Dim command As New Odbc.OdbcCommand("SELECT STR_CAMPO1, STR_CAMPO2 FROM TABELA WHERE DT_CAMPO3 >= '"
& _
Format(dtDataInicial,
"MM/dd/yyyy") & "' AND DT_CAMPO3 <= '" & Format(dtDataFinal, "MM/dd/yyyy") & "' AND STR_CAMPO2 <> 'TESTE'"
, SISGERConnection)
Dim adapter As Odbc.OdbcDataAdapter = New Odbc.OdbcDataAdapter
()
Try
SISGERConnection.Open()
adapter.SelectCommand = command
Dim table As New
DataTable
table.Locale = System.Globalization.
CultureInfo
.InvariantCulture
adapter.Fill(table)
intlCount = 0
Using dsreader As New DataTableReader(New DataTable
() {table})
While
dsreader.Read()
strlCmd =
""
strlCmd =
"INSERT INTO TB_LI (CdLI,StLiAtual,StLiNovo,DtUltimaPesquisa,CdPesquisa) VALUES ("
strlCmd = strlCmd &
"'" & dsreader(0) &
"',"
strlCmd = strlCmd &
"'" & dsreader(1) &
"',"
strlCmd = strlCmd &
"'',"
strlCmd = strlCmd &
"'" & dtDataUltimaOcorrencia &
"',"
strlCmd = strlCmd & GetLastPesquisa() &
")"
ExecuteCommand(strlCmd, 1) : intlCount = intlCount + 1
End
While
End
Using
SISGERConnection.Close()
Escreve(
"Registros de LI obtidos.....: "
& intlCount)
Catch ex As
Exception
ShowStandardError(Err.Number, Err.Description)
End
Try
ObterDadosLi =
True
Catch ex As
Exception
ShowStandardError(Err.Number, Err.Description)
End
Try
End Function
--------------------------------
Este mesmo código é usado para funções semelhantes quando o assunto é o ACCESS.
Então, na linha onde está o while "Whiledsreader.Read()" a execução retorna falso, ou seja, não ocorreu retorno do banco, no entanto, executando o SQL no firebird, são retornadas 90 linhas.
Alguém poderia me dar uma dica quanto a possíveis soluções ou explicações quanto a este problema?
Atenciosamente, Lincoln Sposito TEL COM. 55 11 3337-0944 / TEL CEL. 55 11 9182-8571 / EMAIL: LINCOLN@SPTRES.COM / skype: lincoln.sposito / www.sptres.com- Movido Olavo Oliveira Neto terça-feira, 13 de setembro de 2011 11:27 Estou movendo sua questão para o forum de ADO.NET. (De:.NET Development - Geral)
Respostas
-
Amigos após realizar alguns vários testes acabei optando por utilizar versões anteriores a mais atual do driver ODBC disponivel para donwload.
Após o donwload desta versão "Firebird_ODBC_2.0.0.151_Win32" e também reinstalei o Fierbird com esta versão "Firebird-2.5.0.26074_1_Win32".
Após isto o processo começou a dar resultado.
Abs,
Lincoln
Atenciosamente, Lincoln Sposito TEL COM. 55 11 3337-0944 / TEL CEL. 55 11 9182-8571 / EMAIL: LINCOLN@SPTRES.COM / skype: lincoln.sposito / www.sptres.com- Marcado como Resposta LINCOLN SPOSITO sexta-feira, 16 de setembro de 2011 23:15
Todas as Respostas
-
AMigos, alguém já fez desenvolvimento .net com firebird em uma máquina com Windows XP?
Atenciosamente, Lincoln Sposito TEL COM. 55 11 3337-0944 / TEL CEL. 55 11 9182-8571 / EMAIL: LINCOLN@SPTRES.COM / skype: lincoln.sposito / www.sptres.com -
Amigos após realizar alguns vários testes acabei optando por utilizar versões anteriores a mais atual do driver ODBC disponivel para donwload.
Após o donwload desta versão "Firebird_ODBC_2.0.0.151_Win32" e também reinstalei o Fierbird com esta versão "Firebird-2.5.0.26074_1_Win32".
Após isto o processo começou a dar resultado.
Abs,
Lincoln
Atenciosamente, Lincoln Sposito TEL COM. 55 11 3337-0944 / TEL CEL. 55 11 9182-8571 / EMAIL: LINCOLN@SPTRES.COM / skype: lincoln.sposito / www.sptres.com- Marcado como Resposta LINCOLN SPOSITO sexta-feira, 16 de setembro de 2011 23:15