Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
Guest mitxoca

Sql Quando Migrado Dao3.5 Para Dao3.6

Question

Guest mitxoca

Tenho um projeto em VB sendo que o banco de dados é em Access97 usava a referencia MicrosoftDAO3.51 converti o mesmo para Access2000 e mudei a referencia para DAO3.6 funcionou legal porém em certas pesquisas sql não retorna nada vou passar as linhas:

Assim eu abro o banco de dados

Sub AbrirBancoDados()

Dim BD As String

BD = GetSetting(App.EXEName, "LocalBD", "Usuário", "")

If BD <> "" Then

BD = GetSetting(App.EXEName, "LocalBD", "Usuário", "")

End If

Dim wrk As Workspace

Set wrk = DBEngine.Workspaces(0)

Set db = wrk.OpenDatabase(BD, False, False, ";PWD=1515")

End Sub

NESSE TIPO DE PESQUISA NÃO RETORNA OS VALORES QUE ANTES NA DAO3.51 ACESS97 ERAM RETORNADOS O RECORDCOUNT DA SEMPRE 0 ACREDITO QUE FALTA ALGUM PARAMETRO PARA FAZER FUNCIONAR AS SQL

Dim Sql As String

Dim Tbsql As Recordset

Sql = "Select * From reserva order by reserva.data "

Set Tbsql = db.OpenRecordset(Sql)

If Tbsql.RecordCount >= 1 Then

..........

com Dao3.51 access97 funciona na Dao3.6 access2000 não

agradeço a ajuda

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Realmente o RecordCount nem sempre retorna a quantidade de registros. Se não me engano, mudar o tipo de cursor (server ou client) pode resolver caso, mas eu prefiro utilizar uma instrução SQL do tipo "SELECT Count(*) AS quantidade FROM tabela", que é garantido que vá funcionar.

Abraços,

Graymalkin

Share this post


Link to post
Share on other sites
  • 0
Guest Guest

Obrigado, o problema e que terei que fazer centenas de alterações no codigo

Share this post


Link to post
Share on other sites
  • 0
Obrigado, o problema e que terei que fazer centenas de alterações no codigo

Crie uma simples função que receba somente o nome da tabela e que faça a operação de retornar a quantidade de registros. Neste caso você trocaria...

If Tbsql.RecordCount >= 1 Then
... por:
If Conta("Reserva") >= 1 Then

Inclusive, você pode colocar um segundo parâmetro que seria a condição (é provável que na maioria dos casos você não vai pedir todos os registros da tabela, mas sim apenas alguns através da cláusula WHERE).

São idéias, mas experimentou trocar o cursor?

Abraços,

Graymalkin

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  



  • Forum Statistics

    • Total Topics
      148576
    • Total Posts
      644276
×
×
  • Create New...