none
VS2010 - VB.NET COM ODBC E FIREBIRD RRS feed

  • 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)
    sexta-feira, 9 de setembro de 2011 22:42

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
    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
    segunda-feira, 12 de setembro de 2011 20:33
  • 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
    sexta-feira, 16 de setembro de 2011 23:15