Vfp9 Vues distantes

samirba Messages postés 6 Date d'inscription mercredi 19 octobre 2005 Statut Membre Dernière intervention 4 janvier 2006 - 29 déc. 2005 à 15:33
ThierryPerretier Messages postés 103 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 juillet 2006 - 29 déc. 2005 à 18:02
Bonjour à tous,

j'utilise une connexion et des vues distantes sur un serveur SQL SERVER définit dans l'onglet Données.
Dans une form, j'ai une vue défini dans l'environnement de données qui utilise une table qui possède un champ de type compteur. comment faire pour récupérer ce compteur?

Merci d'avance

4 réponses

ThierryPerretier Messages postés 103 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 juillet 2006 1
29 déc. 2005 à 15:50
Bonjour,
Pour récupèrer le compteur d'un nouvel enregistrement ?

SQLExec(CursorGetProp("ConnectHandle"),"select scope_identity() as id","Compteur")

Compteur = Compteur.id
0
samirba Messages postés 6 Date d'inscription mercredi 19 octobre 2005 Statut Membre Dernière intervention 4 janvier 2006
29 déc. 2005 à 16:15
Bonjour thierry,

J'ai écrit le code suivant :

select facture && la vue distante basé sur une table sql server
append blank
replace date_fact with dtoc(date())
tableupdate(.t.)
SQLExec(CursorGetProp("ConnectHandle"),"select scope_identity() as id","Compteur")
Compteur = Compteur.id
Compteur me renvoie .null.
j'ai fait une Bêtise?
0
ThierryPerretier Messages postés 103 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 juillet 2006 1
29 déc. 2005 à 17:38
Quel est la valeur de retour de TableUpdate ? Un nouvel enregistrement a t-il bien été créé dans la table SQL ?

Je conseille d'écrire comme ceci, pour bien repèrer les éventuels messages d'erreur SQL :

IF not TableUpdate(.t.)
ERROR message()
ENDIF
0
ThierryPerretier Messages postés 103 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 juillet 2006 1
29 déc. 2005 à 18:02
Désolé, je me suis trompé.
Il faut faire SELECT @@IDENTITY au lieu de SCOPE_IDENTITY(). En effet, c'est une instruction sp_executesql (sorte de procédure) qui est envoyée par ODBC à SQL pour la commande INSERT, donc la portée n'est plus la même.
0
Rejoignez-nous