Bonjour,
Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
connecte sans problème avec ce string de connection (avec un object
ADODB.Connection):
Private dbConnector As New ADODB.Connection
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=" & strServerName & ";" & _
"Initial Catalog=" & strDBDatabaseName & ";" & _
"Integrated Security=SSPI;"
dbConnector.ConnectionString = strConnect
dbConnector.open
Ensuite je veux faire une requète et c'est là que c'est problématique.
Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un SELECT:
SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
Merci!
Marty
Bonjour,
Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
connecte sans problème avec ce string de connection (avec un object
ADODB.Connection):
Private dbConnector As New ADODB.Connection
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=" & strServerName & ";" & _
"Initial Catalog=" & strDBDatabaseName & ";" & _
"Integrated Security=SSPI;"
dbConnector.ConnectionString = strConnect
dbConnector.open
Ensuite je veux faire une requète et c'est là que c'est problématique.
Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un SELECT:
SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
Merci!
Marty
Bonjour,
Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
connecte sans problème avec ce string de connection (avec un object
ADODB.Connection):
Private dbConnector As New ADODB.Connection
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=" & strServerName & ";" & _
"Initial Catalog=" & strDBDatabaseName & ";" & _
"Integrated Security=SSPI;"
dbConnector.ConnectionString = strConnect
dbConnector.open
Ensuite je veux faire une requète et c'est là que c'est problématique.
Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un SELECT:
SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
Merci!
Marty
Bonjour,
Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
connecte sans problème avec ce string de connection (avec un object
ADODB.Connection):
Private dbConnector As New ADODB.Connection
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=" & strServerName & ";" & _
"Initial Catalog=" & strDBDatabaseName & ";" & _
"Integrated Security=SSPI;"
dbConnector.ConnectionString = strConnect
dbConnector.open
Ensuite je veux faire une requète et c'est là que c'est problématique.
Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un SELECT:
SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
Merci!
Marty
Bonjour,
Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
connecte sans problème avec ce string de connection (avec un object
ADODB.Connection):
Private dbConnector As New ADODB.Connection
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=" & strServerName & ";" & _
"Initial Catalog=" & strDBDatabaseName & ";" & _
"Integrated Security=SSPI;"
dbConnector.ConnectionString = strConnect
dbConnector.open
Ensuite je veux faire une requète et c'est là que c'est problématique.
Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un SELECT:
SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
Merci!
Marty
Bonjour,
Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
connecte sans problème avec ce string de connection (avec un object
ADODB.Connection):
Private dbConnector As New ADODB.Connection
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=" & strServerName & ";" & _
"Initial Catalog=" & strDBDatabaseName & ";" & _
"Integrated Security=SSPI;"
dbConnector.ConnectionString = strConnect
dbConnector.open
Ensuite je veux faire une requète et c'est là que c'est problématique.
Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un SELECT:
SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
Merci!
Marty
Dans ton code tu n'ouvre qu'une connexion sur le server sql.
Il faut passer par l'objet recordset pour retourner un jeu de données.
1) Il peut être instancié à la volée
Dim rs as adodb.recordset
set rs = conn.execute(sql)
rs.close
set rs = nothing
2) Le déclarer proprement
Dim rs as new adob.recordset
rs.open sql, conn, adsOpenKeyset
While not rs.eof
rs.movenext
Wend
rs.close
set rs = nothing
"Marty" a écrit dans le message de
news:KNg5e.9744$Bonjour,
Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
connecte sans problème avec ce string de connection (avec un object
ADODB.Connection):
Private dbConnector As New ADODB.Connection
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=" & strServerName & ";" & _
"Initial Catalog=" & strDBDatabaseName & ";" & _
"Integrated Security=SSPI;"
dbConnector.ConnectionString = strConnect
dbConnector.open
Ensuite je veux faire une requète et c'est là que c'est problématique.
Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un SELECT:
SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
Merci!
Marty
Dans ton code tu n'ouvre qu'une connexion sur le server sql.
Il faut passer par l'objet recordset pour retourner un jeu de données.
1) Il peut être instancié à la volée
Dim rs as adodb.recordset
set rs = conn.execute(sql)
rs.close
set rs = nothing
2) Le déclarer proprement
Dim rs as new adob.recordset
rs.open sql, conn, adsOpenKeyset
While not rs.eof
rs.movenext
Wend
rs.close
set rs = nothing
"Marty" <xmarty99@hotmail.com> a écrit dans le message de
news:KNg5e.9744$7Q4.4349@clgrps13...
Bonjour,
Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
connecte sans problème avec ce string de connection (avec un object
ADODB.Connection):
Private dbConnector As New ADODB.Connection
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=" & strServerName & ";" & _
"Initial Catalog=" & strDBDatabaseName & ";" & _
"Integrated Security=SSPI;"
dbConnector.ConnectionString = strConnect
dbConnector.open
Ensuite je veux faire une requète et c'est là que c'est problématique.
Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un SELECT:
SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
Merci!
Marty
Dans ton code tu n'ouvre qu'une connexion sur le server sql.
Il faut passer par l'objet recordset pour retourner un jeu de données.
1) Il peut être instancié à la volée
Dim rs as adodb.recordset
set rs = conn.execute(sql)
rs.close
set rs = nothing
2) Le déclarer proprement
Dim rs as new adob.recordset
rs.open sql, conn, adsOpenKeyset
While not rs.eof
rs.movenext
Wend
rs.close
set rs = nothing
"Marty" a écrit dans le message de
news:KNg5e.9744$Bonjour,
Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
connecte sans problème avec ce string de connection (avec un object
ADODB.Connection):
Private dbConnector As New ADODB.Connection
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=" & strServerName & ";" & _
"Initial Catalog=" & strDBDatabaseName & ";" & _
"Integrated Security=SSPI;"
dbConnector.ConnectionString = strConnect
dbConnector.open
Ensuite je veux faire une requète et c'est là que c'est problématique.
Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un SELECT:
SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
Merci!
Marty
Cela me semble ok. Le plus simple est de nous dire quelle est l'erreur que
tu obtiens....
Patrice
Cela me semble ok. Le plus simple est de nous dire quelle est l'erreur que
tu obtiens....
Patrice
Cela me semble ok. Le plus simple est de nous dire quelle est l'erreur que
tu obtiens....
Patrice
Bonjour Synopsis,
Voici, ci-bas, ma fonction qui reçoit une string SQL, l'exécute et
retourne l'object ADODB.Recordset qui contient les datas.
Mon problème, est qu'il n'y a pas d'erreurs d'exécution et que le
rstRecordSet.recordcount = -1 donc il n'a pas récupéré de data de la DB,
et ce, même si je lui fait exécuter "SELECT * FROM maTable". Pourtant il
y a du data dans la DB.
Donc je me demandais qu'il pourrait y avoir une syntaxe spéciale à
respecter vu que c'est SQL Server et non MSAccess qui reçoit la
commande. Est-ce possible?
Est-ce que je fais quelques chose d'incorrect? Pourtant j'ai toujours
réussi lorsque je connecte avec MSAccess.
Est-ce ce serait le string de connection que j'ai cité dans le précédent
message qui serait problématique?
Public Function processThisSQLQuery(strSQLQuery As String) As
ADODB.Recordset
On Error GoTo ErrHandler
If (dbConnector.State = 1) Then
Dim rstRecordSet As New ADODB.Recordset
rstRecordSet.Open strSQLQuery, dbConnector, adOpenDynamic
Set processSQLQueryRead = rstRecordSet
rstRecordSet.Close
Set rstRecordSet = Nothing
Else
MsgBox "DBConnector not open"
End If
Exit Function
ErrHandler:
Call displayError(Err, _
"clsDBHandler", _
"processSQLQueryRead", _
Err.Description & _
" " & _
strSQLQuery)
End Function
Merci beaucoup de ton aide,
Martin
Synopsis wrote:
> Dans ton code tu n'ouvre qu'une connexion sur le server sql.
> Il faut passer par l'objet recordset pour retourner un jeu de données.
>
> 1) Il peut être instancié à la volée
> Dim rs as adodb.recordset
>
> set rs = conn.execute(sql)
>
> rs.close
> set rs = nothing
>
> 2) Le déclarer proprement
> Dim rs as new adob.recordset
>
> rs.open sql, conn, adsOpenKeyset
>
> While not rs.eof
> rs.movenext
> Wend
>
> rs.close
> set rs = nothing
>
>
>
> "Marty" a écrit dans le message de
> news:KNg5e.9744$
>
>>Bonjour,
>>
>>Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
>>connecte sans problème avec ce string de connection (avec un object
>>ADODB.Connection):
>>
>> Private dbConnector As New ADODB.Connection
>> strConnect = "Provider=SQLOLEDB;" & _
>> "Data Source=" & strServerName & ";" & _
>> "Initial Catalog=" & strDBDatabaseName & ";" & _
>> "Integrated Security=SSPI;"
>> dbConnector.ConnectionString = strConnect
>> dbConnector.open
>>
>>Ensuite je veux faire une requète et c'est là que c'est problématique.
>>Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un
>>
>>SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
>>
>>Merci!
>>Marty
>
>
>
Bonjour Synopsis,
Voici, ci-bas, ma fonction qui reçoit une string SQL, l'exécute et
retourne l'object ADODB.Recordset qui contient les datas.
Mon problème, est qu'il n'y a pas d'erreurs d'exécution et que le
rstRecordSet.recordcount = -1 donc il n'a pas récupéré de data de la DB,
et ce, même si je lui fait exécuter "SELECT * FROM maTable". Pourtant il
y a du data dans la DB.
Donc je me demandais qu'il pourrait y avoir une syntaxe spéciale à
respecter vu que c'est SQL Server et non MSAccess qui reçoit la
commande. Est-ce possible?
Est-ce que je fais quelques chose d'incorrect? Pourtant j'ai toujours
réussi lorsque je connecte avec MSAccess.
Est-ce ce serait le string de connection que j'ai cité dans le précédent
message qui serait problématique?
Public Function processThisSQLQuery(strSQLQuery As String) As
ADODB.Recordset
On Error GoTo ErrHandler
If (dbConnector.State = 1) Then
Dim rstRecordSet As New ADODB.Recordset
rstRecordSet.Open strSQLQuery, dbConnector, adOpenDynamic
Set processSQLQueryRead = rstRecordSet
rstRecordSet.Close
Set rstRecordSet = Nothing
Else
MsgBox "DBConnector not open"
End If
Exit Function
ErrHandler:
Call displayError(Err, _
"clsDBHandler", _
"processSQLQueryRead", _
Err.Description & _
" " & _
strSQLQuery)
End Function
Merci beaucoup de ton aide,
Martin
Synopsis wrote:
> Dans ton code tu n'ouvre qu'une connexion sur le server sql.
> Il faut passer par l'objet recordset pour retourner un jeu de données.
>
> 1) Il peut être instancié à la volée
> Dim rs as adodb.recordset
>
> set rs = conn.execute(sql)
>
> rs.close
> set rs = nothing
>
> 2) Le déclarer proprement
> Dim rs as new adob.recordset
>
> rs.open sql, conn, adsOpenKeyset
>
> While not rs.eof
> rs.movenext
> Wend
>
> rs.close
> set rs = nothing
>
>
>
> "Marty" <xmarty99@hotmail.com> a écrit dans le message de
> news:KNg5e.9744$7Q4.4349@clgrps13...
>
>>Bonjour,
>>
>>Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
>>connecte sans problème avec ce string de connection (avec un object
>>ADODB.Connection):
>>
>> Private dbConnector As New ADODB.Connection
>> strConnect = "Provider=SQLOLEDB;" & _
>> "Data Source=" & strServerName & ";" & _
>> "Initial Catalog=" & strDBDatabaseName & ";" & _
>> "Integrated Security=SSPI;"
>> dbConnector.ConnectionString = strConnect
>> dbConnector.open
>>
>>Ensuite je veux faire une requète et c'est là que c'est problématique.
>>Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un
>>
>>SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
>>
>>Merci!
>>Marty
>
>
>
Bonjour Synopsis,
Voici, ci-bas, ma fonction qui reçoit une string SQL, l'exécute et
retourne l'object ADODB.Recordset qui contient les datas.
Mon problème, est qu'il n'y a pas d'erreurs d'exécution et que le
rstRecordSet.recordcount = -1 donc il n'a pas récupéré de data de la DB,
et ce, même si je lui fait exécuter "SELECT * FROM maTable". Pourtant il
y a du data dans la DB.
Donc je me demandais qu'il pourrait y avoir une syntaxe spéciale à
respecter vu que c'est SQL Server et non MSAccess qui reçoit la
commande. Est-ce possible?
Est-ce que je fais quelques chose d'incorrect? Pourtant j'ai toujours
réussi lorsque je connecte avec MSAccess.
Est-ce ce serait le string de connection que j'ai cité dans le précédent
message qui serait problématique?
Public Function processThisSQLQuery(strSQLQuery As String) As
ADODB.Recordset
On Error GoTo ErrHandler
If (dbConnector.State = 1) Then
Dim rstRecordSet As New ADODB.Recordset
rstRecordSet.Open strSQLQuery, dbConnector, adOpenDynamic
Set processSQLQueryRead = rstRecordSet
rstRecordSet.Close
Set rstRecordSet = Nothing
Else
MsgBox "DBConnector not open"
End If
Exit Function
ErrHandler:
Call displayError(Err, _
"clsDBHandler", _
"processSQLQueryRead", _
Err.Description & _
" " & _
strSQLQuery)
End Function
Merci beaucoup de ton aide,
Martin
Synopsis wrote:
> Dans ton code tu n'ouvre qu'une connexion sur le server sql.
> Il faut passer par l'objet recordset pour retourner un jeu de données.
>
> 1) Il peut être instancié à la volée
> Dim rs as adodb.recordset
>
> set rs = conn.execute(sql)
>
> rs.close
> set rs = nothing
>
> 2) Le déclarer proprement
> Dim rs as new adob.recordset
>
> rs.open sql, conn, adsOpenKeyset
>
> While not rs.eof
> rs.movenext
> Wend
>
> rs.close
> set rs = nothing
>
>
>
> "Marty" a écrit dans le message de
> news:KNg5e.9744$
>
>>Bonjour,
>>
>>Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
>>connecte sans problème avec ce string de connection (avec un object
>>ADODB.Connection):
>>
>> Private dbConnector As New ADODB.Connection
>> strConnect = "Provider=SQLOLEDB;" & _
>> "Data Source=" & strServerName & ";" & _
>> "Initial Catalog=" & strDBDatabaseName & ";" & _
>> "Integrated Security=SSPI;"
>> dbConnector.ConnectionString = strConnect
>> dbConnector.open
>>
>>Ensuite je veux faire une requète et c'est là que c'est problématique.
>>Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un
>>
>>SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
>>
>>Merci!
>>Marty
>
>
>
Il faut ouvrir ton recordset en adOpenKeyset
sinon la propriété recordcount = toujours à -1 (idem pour absolutePosition,
absolutePage....)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdprocursortype.asp
Pour savoir s'il y a des données, tu test juste après ta commande sql, le
Eof ou (Bof )
rs.open sql, conn, adOpenKeySet
if rs.eof then
' pas de données
else
' exécute
end if
If rs.state = 1 then rs.close
Set rs = nothing
"Marty" a écrit dans le message de
news:nNv6e.17128$Bonjour Synopsis,
Voici, ci-bas, ma fonction qui reçoit une string SQL, l'exécute et
retourne l'object ADODB.Recordset qui contient les datas.
Mon problème, est qu'il n'y a pas d'erreurs d'exécution et que le
rstRecordSet.recordcount = -1 donc il n'a pas récupéré de data de la DB,
et ce, même si je lui fait exécuter "SELECT * FROM maTable". Pourtant il
y a du data dans la DB.
Donc je me demandais qu'il pourrait y avoir une syntaxe spéciale à
respecter vu que c'est SQL Server et non MSAccess qui reçoit la
commande. Est-ce possible?
Est-ce que je fais quelques chose d'incorrect? Pourtant j'ai toujours
réussi lorsque je connecte avec MSAccess.
Est-ce ce serait le string de connection que j'ai cité dans le précédent
message qui serait problématique?
Public Function processThisSQLQuery(strSQLQuery As String) As
ADODB.Recordset
On Error GoTo ErrHandler
If (dbConnector.State = 1) Then
Dim rstRecordSet As New ADODB.Recordset
rstRecordSet.Open strSQLQuery, dbConnector, adOpenDynamic
Set processSQLQueryRead = rstRecordSet
rstRecordSet.Close
Set rstRecordSet = Nothing
Else
MsgBox "DBConnector not open"
End If
Exit Function
ErrHandler:
Call displayError(Err, _
"clsDBHandler", _
"processSQLQueryRead", _
Err.Description & _
" " & _
strSQLQuery)
End Function
Merci beaucoup de ton aide,
Martin
Synopsis wrote:Dans ton code tu n'ouvre qu'une connexion sur le server sql.
Il faut passer par l'objet recordset pour retourner un jeu de données.
1) Il peut être instancié à la volée
Dim rs as adodb.recordset
set rs = conn.execute(sql)
rs.close
set rs = nothing
2) Le déclarer proprement
Dim rs as new adob.recordset
rs.open sql, conn, adsOpenKeyset
While not rs.eof
rs.movenext
Wend
rs.close
set rs = nothing
"Marty" a écrit dans le message de
news:KNg5e.9744$Bonjour,
Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
connecte sans problème avec ce string de connection (avec un object
ADODB.Connection):
Private dbConnector As New ADODB.Connection
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=" & strServerName & ";" & _
"Initial Catalog=" & strDBDatabaseName & ";" & _
"Integrated Security=SSPI;"
dbConnector.ConnectionString = strConnect
dbConnector.open
Ensuite je veux faire une requète et c'est là que c'est problématique.
Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un
SELECT:SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
Merci!
Marty
Il faut ouvrir ton recordset en adOpenKeyset
sinon la propriété recordcount = toujours à -1 (idem pour absolutePosition,
absolutePage....)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdprocursortype.asp
Pour savoir s'il y a des données, tu test juste après ta commande sql, le
Eof ou (Bof )
\
rs.open sql, conn, adOpenKeySet
if rs.eof then
' pas de données
else
' exécute
end if
If rs.state = 1 then rs.close
Set rs = nothing
"Marty" <xmarty99@hotmail.com> a écrit dans le message de
news:nNv6e.17128$yV3.3298@clgrps12...
Bonjour Synopsis,
Voici, ci-bas, ma fonction qui reçoit une string SQL, l'exécute et
retourne l'object ADODB.Recordset qui contient les datas.
Mon problème, est qu'il n'y a pas d'erreurs d'exécution et que le
rstRecordSet.recordcount = -1 donc il n'a pas récupéré de data de la DB,
et ce, même si je lui fait exécuter "SELECT * FROM maTable". Pourtant il
y a du data dans la DB.
Donc je me demandais qu'il pourrait y avoir une syntaxe spéciale à
respecter vu que c'est SQL Server et non MSAccess qui reçoit la
commande. Est-ce possible?
Est-ce que je fais quelques chose d'incorrect? Pourtant j'ai toujours
réussi lorsque je connecte avec MSAccess.
Est-ce ce serait le string de connection que j'ai cité dans le précédent
message qui serait problématique?
Public Function processThisSQLQuery(strSQLQuery As String) As
ADODB.Recordset
On Error GoTo ErrHandler
If (dbConnector.State = 1) Then
Dim rstRecordSet As New ADODB.Recordset
rstRecordSet.Open strSQLQuery, dbConnector, adOpenDynamic
Set processSQLQueryRead = rstRecordSet
rstRecordSet.Close
Set rstRecordSet = Nothing
Else
MsgBox "DBConnector not open"
End If
Exit Function
ErrHandler:
Call displayError(Err, _
"clsDBHandler", _
"processSQLQueryRead", _
Err.Description & _
" " & _
strSQLQuery)
End Function
Merci beaucoup de ton aide,
Martin
Synopsis wrote:
Dans ton code tu n'ouvre qu'une connexion sur le server sql.
Il faut passer par l'objet recordset pour retourner un jeu de données.
1) Il peut être instancié à la volée
Dim rs as adodb.recordset
set rs = conn.execute(sql)
rs.close
set rs = nothing
2) Le déclarer proprement
Dim rs as new adob.recordset
rs.open sql, conn, adsOpenKeyset
While not rs.eof
rs.movenext
Wend
rs.close
set rs = nothing
"Marty" <xmarty99@hotmail.com> a écrit dans le message de
news:KNg5e.9744$7Q4.4349@clgrps13...
Bonjour,
Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
connecte sans problème avec ce string de connection (avec un object
ADODB.Connection):
Private dbConnector As New ADODB.Connection
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=" & strServerName & ";" & _
"Initial Catalog=" & strDBDatabaseName & ";" & _
"Integrated Security=SSPI;"
dbConnector.ConnectionString = strConnect
dbConnector.open
Ensuite je veux faire une requète et c'est là que c'est problématique.
Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un
SELECT:
SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
Merci!
Marty
Il faut ouvrir ton recordset en adOpenKeyset
sinon la propriété recordcount = toujours à -1 (idem pour absolutePosition,
absolutePage....)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdprocursortype.asp
Pour savoir s'il y a des données, tu test juste après ta commande sql, le
Eof ou (Bof )
rs.open sql, conn, adOpenKeySet
if rs.eof then
' pas de données
else
' exécute
end if
If rs.state = 1 then rs.close
Set rs = nothing
"Marty" a écrit dans le message de
news:nNv6e.17128$Bonjour Synopsis,
Voici, ci-bas, ma fonction qui reçoit une string SQL, l'exécute et
retourne l'object ADODB.Recordset qui contient les datas.
Mon problème, est qu'il n'y a pas d'erreurs d'exécution et que le
rstRecordSet.recordcount = -1 donc il n'a pas récupéré de data de la DB,
et ce, même si je lui fait exécuter "SELECT * FROM maTable". Pourtant il
y a du data dans la DB.
Donc je me demandais qu'il pourrait y avoir une syntaxe spéciale à
respecter vu que c'est SQL Server et non MSAccess qui reçoit la
commande. Est-ce possible?
Est-ce que je fais quelques chose d'incorrect? Pourtant j'ai toujours
réussi lorsque je connecte avec MSAccess.
Est-ce ce serait le string de connection que j'ai cité dans le précédent
message qui serait problématique?
Public Function processThisSQLQuery(strSQLQuery As String) As
ADODB.Recordset
On Error GoTo ErrHandler
If (dbConnector.State = 1) Then
Dim rstRecordSet As New ADODB.Recordset
rstRecordSet.Open strSQLQuery, dbConnector, adOpenDynamic
Set processSQLQueryRead = rstRecordSet
rstRecordSet.Close
Set rstRecordSet = Nothing
Else
MsgBox "DBConnector not open"
End If
Exit Function
ErrHandler:
Call displayError(Err, _
"clsDBHandler", _
"processSQLQueryRead", _
Err.Description & _
" " & _
strSQLQuery)
End Function
Merci beaucoup de ton aide,
Martin
Synopsis wrote:Dans ton code tu n'ouvre qu'une connexion sur le server sql.
Il faut passer par l'objet recordset pour retourner un jeu de données.
1) Il peut être instancié à la volée
Dim rs as adodb.recordset
set rs = conn.execute(sql)
rs.close
set rs = nothing
2) Le déclarer proprement
Dim rs as new adob.recordset
rs.open sql, conn, adsOpenKeyset
While not rs.eof
rs.movenext
Wend
rs.close
set rs = nothing
"Marty" a écrit dans le message de
news:KNg5e.9744$Bonjour,
Je programme en VB6 et je veux accéder à une DB SQL Server. J'y
connecte sans problème avec ce string de connection (avec un object
ADODB.Connection):
Private dbConnector As New ADODB.Connection
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=" & strServerName & ";" & _
"Initial Catalog=" & strDBDatabaseName & ";" & _
"Integrated Security=SSPI;"
dbConnector.ConnectionString = strConnect
dbConnector.open
Ensuite je veux faire une requète et c'est là que c'est problématique.
Y a-t-il une syntaxe à respecter autre que celle-ci pour faire un
SELECT:SELECT monChampNumeriqueA FROM maTable WHERE monChampNumeriqueB = 10
Merci!
Marty
Bonjour Patrice,
J'ai écrit une réponse détaillée à Synopsis, est-ce tu la vois?
Merci de ton aide,
Martin
Patrice wrote:
> Cela me semble ok. Le plus simple est de nous dire quelle est l'erreur
> tu obtiens....
>
> Patrice
>
Bonjour Patrice,
J'ai écrit une réponse détaillée à Synopsis, est-ce tu la vois?
Merci de ton aide,
Martin
Patrice wrote:
> Cela me semble ok. Le plus simple est de nous dire quelle est l'erreur
> tu obtiens....
>
> Patrice
>
Bonjour Patrice,
J'ai écrit une réponse détaillée à Synopsis, est-ce tu la vois?
Merci de ton aide,
Martin
Patrice wrote:
> Cela me semble ok. Le plus simple est de nous dire quelle est l'erreur
> tu obtiens....
>
> Patrice
>
Vu et je vois que c'est réglé. Good ! Comme indiqué par "Synopis", le -1
n'indique PAS qu'aucune donnée n'est lue. Il indique le nombre de lignes
n'est pas connu (notamment c'est le cas si le curseur choisi ne provoque pas
la lecture immédiate de toutes les lignes).
Le plus simple est toujours de donner d'emblée le problème exact
rencontré...
Patrice
Vu et je vois que c'est réglé. Good ! Comme indiqué par "Synopis", le -1
n'indique PAS qu'aucune donnée n'est lue. Il indique le nombre de lignes
n'est pas connu (notamment c'est le cas si le curseur choisi ne provoque pas
la lecture immédiate de toutes les lignes).
Le plus simple est toujours de donner d'emblée le problème exact
rencontré...
Patrice
Vu et je vois que c'est réglé. Good ! Comme indiqué par "Synopis", le -1
n'indique PAS qu'aucune donnée n'est lue. Il indique le nombre de lignes
n'est pas connu (notamment c'est le cas si le curseur choisi ne provoque pas
la lecture immédiate de toutes les lignes).
Le plus simple est toujours de donner d'emblée le problème exact
rencontré...
Patrice
Merci Patrice, c'est l'fun d'avoir de l'aide à proximité (virtuellement).
J'ai une autre question, lorsque je fais une requète comme celle-ci:
SELECT * form maTable WHERE maDate = '20050411'
Est-ce uqe j'utilise la bonne syntaxe pour la date? J'ai vu des
exemples qui précisent la date avec #20050411#, et dans ce cas j'obtient
une erreur, dans l'autre ('20050411'), aucun data.
Quelle syntaxe dois-je utiliser? Merci :)
Merci
Patrice wrote:Vu et je vois que c'est réglé. Good ! Comme indiqué par "Synopis", le -1
n'indique PAS qu'aucune donnée n'est lue. Il indique le nombre de lignes
n'est pas connu (notamment c'est le cas si le curseur choisi ne
provoque pas
la lecture immédiate de toutes les lignes).
Le plus simple est toujours de donner d'emblée le problème exact
rencontré...
Patrice
Merci Patrice, c'est l'fun d'avoir de l'aide à proximité (virtuellement).
J'ai une autre question, lorsque je fais une requète comme celle-ci:
SELECT * form maTable WHERE maDate = '20050411'
Est-ce uqe j'utilise la bonne syntaxe pour la date? J'ai vu des
exemples qui précisent la date avec #20050411#, et dans ce cas j'obtient
une erreur, dans l'autre ('20050411'), aucun data.
Quelle syntaxe dois-je utiliser? Merci :)
Merci
Patrice wrote:
Vu et je vois que c'est réglé. Good ! Comme indiqué par "Synopis", le -1
n'indique PAS qu'aucune donnée n'est lue. Il indique le nombre de lignes
n'est pas connu (notamment c'est le cas si le curseur choisi ne
provoque pas
la lecture immédiate de toutes les lignes).
Le plus simple est toujours de donner d'emblée le problème exact
rencontré...
Patrice
Merci Patrice, c'est l'fun d'avoir de l'aide à proximité (virtuellement).
J'ai une autre question, lorsque je fais une requète comme celle-ci:
SELECT * form maTable WHERE maDate = '20050411'
Est-ce uqe j'utilise la bonne syntaxe pour la date? J'ai vu des
exemples qui précisent la date avec #20050411#, et dans ce cas j'obtient
une erreur, dans l'autre ('20050411'), aucun data.
Quelle syntaxe dois-je utiliser? Merci :)
Merci
Patrice wrote:Vu et je vois que c'est réglé. Good ! Comme indiqué par "Synopis", le -1
n'indique PAS qu'aucune donnée n'est lue. Il indique le nombre de lignes
n'est pas connu (notamment c'est le cas si le curseur choisi ne
provoque pas
la lecture immédiate de toutes les lignes).
Le plus simple est toujours de donner d'emblée le problème exact
rencontré...
Patrice
Merci Patrice, c'est l'fun d'avoir de l'aide à proximité (virtuellement).
J'ai une autre question, lorsque je fais une requète comme celle-ci:
SELECT * form maTable WHERE maDate = '20050411'
Est-ce uqe j'utilise la bonne syntaxe pour la date? J'ai vu des
exemples qui précisent la date avec #20050411#, et dans ce cas j'obtient
une erreur, dans l'autre ('20050411'), aucun data.
Quelle syntaxe dois-je utiliser? Merci :)
Merci
Patrice wrote:
> Vu et je vois que c'est réglé. Good ! Comme indiqué par "Synopis", le -1
> n'indique PAS qu'aucune donnée n'est lue. Il indique le nombre de lignes
> n'est pas connu (notamment c'est le cas si le curseur choisi ne provoque
> la lecture immédiate de toutes les lignes).
>
> Le plus simple est toujours de donner d'emblée le problème exact
> rencontré...
>
> Patrice
>
Merci Patrice, c'est l'fun d'avoir de l'aide à proximité (virtuellement).
J'ai une autre question, lorsque je fais une requète comme celle-ci:
SELECT * form maTable WHERE maDate = '20050411'
Est-ce uqe j'utilise la bonne syntaxe pour la date? J'ai vu des
exemples qui précisent la date avec #20050411#, et dans ce cas j'obtient
une erreur, dans l'autre ('20050411'), aucun data.
Quelle syntaxe dois-je utiliser? Merci :)
Merci
Patrice wrote:
> Vu et je vois que c'est réglé. Good ! Comme indiqué par "Synopis", le -1
> n'indique PAS qu'aucune donnée n'est lue. Il indique le nombre de lignes
> n'est pas connu (notamment c'est le cas si le curseur choisi ne provoque
> la lecture immédiate de toutes les lignes).
>
> Le plus simple est toujours de donner d'emblée le problème exact
> rencontré...
>
> Patrice
>
Merci Patrice, c'est l'fun d'avoir de l'aide à proximité (virtuellement).
J'ai une autre question, lorsque je fais une requète comme celle-ci:
SELECT * form maTable WHERE maDate = '20050411'
Est-ce uqe j'utilise la bonne syntaxe pour la date? J'ai vu des
exemples qui précisent la date avec #20050411#, et dans ce cas j'obtient
une erreur, dans l'autre ('20050411'), aucun data.
Quelle syntaxe dois-je utiliser? Merci :)
Merci
Patrice wrote:
> Vu et je vois que c'est réglé. Good ! Comme indiqué par "Synopis", le -1
> n'indique PAS qu'aucune donnée n'est lue. Il indique le nombre de lignes
> n'est pas connu (notamment c'est le cas si le curseur choisi ne provoque
> la lecture immédiate de toutes les lignes).
>
> Le plus simple est toujours de donner d'emblée le problème exact
> rencontré...
>
> Patrice
>