~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période. Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.
~ Rechercher ~
~ Annuaire VB ~
~ Partenaires ~
|
Fonction SQLNumResultCols
Declare Function SQLNumResultCols Lib "odbc32.dll" ( _ ByVal hstmt As Long, _
NumCols As Long) As Long
Versions : . Windows 95/98 : Oui . Windows NT : A partir de 3.1 . Windows 2000/XP : OuiDescription : (origine : Philippe Plançon - plancon@onetelnet.fr)
Exemple d'utilisation :
' (Exemple de Phil)
' Dans cet exemple, à chaque appel de SQLFetch, on passe à la ligne suivante.
Declare Function SQLNumResultCols Lib "odbc32" (ByVal hstmt As Long, _
NumCols As Long) As Long
Declare Function SQLFetch Lib "odbc32" (ByVal hstmt As Long) As Long
Declare Function SQLGetData Lib "odbc32" (ByVal hstmt As Long, ByVal _
col As Long, ByVal fConvType As Long, ByVal rgbValue As Any, _
ByVal cbValueMax As Long, pcbValue As Long) As Long
Global Const SQL_CHAR = 1
Global Const SQL_SUCCESS = 0
' ---Déclarations des variables---
Dim i, j as Long
Dim Tab
Dim Cols as long
Dim SBuffer As String * 256
Dim LongOutLen as long
Dim hstmt as long
' La connection à une base doit être établi avant (voir SQLAllocConnect)
' ---Extraction d'une requête retournant plus d'une colonne---
SQLNumResultCols hstmt, Cols
i = 1
Do While SQLFetch(hstmt) = SQL_SUCCESS
Redim Preserve Tab(i,Cols)
SBuffer = String$(256, 0)
For j = 1 To Cols
SQLGetData hstmt, j, SQL_CHAR, SBuffer, Len(SBuffer), LongOutLen
Tab(i,j) = Mid$(SBuffer, 1, LongOutLen) ' Mid$ est mieux que Mid
' (Voir optimisation du code VB dans la rubrique Code)
Next j
i = i + 1
Loop
Retour à la liste des API |