...
Remarque |
---|
Le client ODBC n’est plus maintenu depuis le passage sous SQL Server en version 7.x de Divalto ERP |
1. Le client ODBC Divalto
Divalto est client ODBC et permet, à partir d'un programme DIVA, d'exécuter une requête et de récupérer le résultat pour une base de données quelconque possédant un driver ODBC. Nous fournissons avec ODBC deux programmes Diva d'exemple :
...
Retour :
La fonction renvoie 0 si tout s'est bien passé, 1 en cas d'erreur.
Syntaxe : texte =SqlGetData
Type:char
Description :
Renvoie la donnée en cours dans le SqlGetResult, et uniquement si sqltype vaut 4.
Cette fonction ne limite pas la taille de la donnée à 255 caractères.
Syntaxe : lg =SqlGetDataSize
Type:L
Description :
Renvoie la taille de la donnée qui sera rendue par SqlGetData ou SqlGetResult.
Syntaxe : SqlNextRecord (ticket)
ticketticket rendu par la connexion
Description :
Lors de la boucle de lecture des données, permet de passer directement à « l'enregistrement suivant », sans faire défiler tous les champs de la requête.
Exemple de lecture des données d'une requête :
1 ticket x
1 Status x
do
Status = SqlGetResult(ticket)
while Status = 0 and sqltype <> 0
;décodage du type de résultat de la requête
switch (sqltype)
;type 0 : il n'y a plus de résultat
case 0
;type 1 : nb de lignes modifiées, requête INSERT, DELETE ou UPDATE
case 1
display "ok, nombre de lignes modifiées " & sqlnblig
;type 2 : nom de l'en tête d'une colonne, requête du type SELECT
case 2
display "nom de la colonne " & sqltexte:1.sqllgcol
display "type " & sqlstate:1.20
display "précision " & sqllgvar
display "nb de décimales " & sqlscavar
;type 3 : fin des en têtes de colonne
case 3
display " "
;type 4 : résultat d'une colonne
case 4
display mid (SqlGetData,1,SqlGetDataSize) & " " 0
;type 5 : fin d'une ligne
case 5
display " "
endswitch
wend
Voir aussi :
SqlCancel, SqlError
1.1.7 Abandon de la requête
Syntaxe : Status=SqlCancel (ticket)
ticketticket rendu par la connexion
Type:X
Description :
La fonction SqlCancel permet d'interrompre une requête sans lire l'ensemble des résultats. Après cette fonction, tous les résultats sont perdus. Cette fonction est facultative si l'on a lu tous les résultats d'une requête par SqlGetResult.
Retour :
La fonction renvoie 0 si tout s'est bien passé, 1 en cas d'erreur.
Exemple :
1 ticket x
1 st x
st = SqlCancel (ticket)
Voir aussi :
SqlError
1.1.8 Déconnexion d'une source
Syntaxe : Status=SqlDisconnect (ticket)
ticketticket rendu par la connexion
Type:X
Description :
Cette fonction se déconnecte de la source et libère le ticket. On ne peut plus ensuite utiliser le ticket. Il faut impérativement se reconnecter avant toute nouvelle opération avec ce ticket.
Retour :
La fonction renvoie 0 si tout s'est bien passé, 1 en cas d'erreur.
Exemple :
1 ticket x
1 st x
st = SqlDisconnect (ticket)
Voir aussi :
SqlConnect, SqlDriverConnect, SqlError
1.1.9 Fermeture de l'interface ODBC
Syntaxe : Status=SqlClose
Type:X
Description :
Cette fonction ferme l'interface ODBC Divalto. Elle ferme aussi toutes les connexions encore ouvertes.
Retour :
La fonction renvoie 0 si tout s'est bien passé, 1 en cas d'erreur.
Exemple :
1 st x
st = SqlClose
Voir aussi :
SqlOpen
1.1.10 Compte rendu d'erreur
Syntaxe : SqlError (erreur1, erreur2)
erreur1code de l'erreur
erreur2libellé de l'erreur
Description :
En cas d'erreur après les fonctions SqlConnect, SqlDriverConnect, SqlExecDirect, SqlGetResult, SqlCancel, SqlDisconnect, la fonction SqlError permet de récupérer le compte rendu de l'erreur. Il est impératif d'appeler cette fonction avant tout autre appel à une fonction ODBC si l'on souhaite récupérer le code de l'erreur produite.
Exemple :
1 erreur1 256
1 erreur2 256
ErrorSql(erreur1,erreur2)
display left(erreur1)
display left erreur2)
2. Appel d'ODBC par l'interface du module YODBC.dhop
Le module yodbc.dhop contient des fonctions qui simplifient l'utilisation d'ODBC dans un programme Diva.
Exemple :
1cn L
1st L
1prix 13,2
main
cn = Connexion ("DSN=test Divalto;UID=root;PWD=;")
st = ExecuteRequete (cn, 'select * from article')
do
st = Fetch (cn)
while st = 0
display fstring ("F", GetData (cn,"Reference") & " " & GetData (cn,"Libelle")) 0
prix = GetData (cn,"pu");les données sont limitées à 4096 caractères
display prix 0
display GetData (cn,"stock") 0
display " "
wend
Deconnexion (cn)
DeconnecterSql
2.1 Connexion
Syntaxe : cn = Connexion (param)
param code de connexion (exemple : "DSN=test Divalto;UID=root;PWD=;")
cnticket de type L, numéro de la connexion
Description :
Crée une connexion avec un serveur. S'il y a une erreur , la fonction affiche l'erreur et termine l'exécution du programme.
2.2 Exécution d'une requête
Syntaxe : st = ExecuteRequete (cn,requete)
cnnuméro de la connexion (ticket de type L)
requete texte de la requête (exemple 'select * from article')
stvaleur de retour (0 = ok)
Description :
Exécute une requête.
2.3 Lecture d'un "enregistrement" de la requête
Syntaxe : st = Fetch (cn)
cnnuméro de la connexion (ticket de type L)
stvaleur de retour (0 = ok)
Description :
Lit le premier "enregistrement", puis les suivants, pour la requête en cours.
2.4 Lecture d'une valeur
Syntaxe : valeur = GetData (cn,donnée)
cnnuméro de la connexion (ticket de type L)
donnée nom de la donnée (exemple "pu")
Le test sur le nom de la donnée se fait en convertissant tous les noms de donnée
en majuscules.
valeurrésultat
Description :
Lecture d'une donnée.
2.5 Déconnexion
Syntaxe : Deconnexion (cn)
cnnuméro de la connexion (ticket de type L)
Description :
Ferme la connexion cn.
2.6 Fin de yodbc.dhop
Syntaxe : DeconnecterSql
Description :
Ferme les connexions encore ouvertes et ferme la Dll DhOdbcClient.
Annexe 1: Mode d'emploi des programmes d'exemple client ODBC
DemoSql.dhsp :
Ce programme est un exemple de programmation de l'interface client ODBC. Il s'adresse aux programmeurs désirant interfacer une application avec ODBC. Le source DemoSql.dhsp comporte les commentaires en complément de la documentation des fonctions. Pour utiliser ce programme, il suffit dans un premier temps de valider les réponses par « Flèche vers le bas ».
Les questions :
...