PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 20-02-2008 09:09:24

le_gone_de_lyon  
Membre Geek
Lieu: LYON
Date d'inscription: 12-09-2006
Messages: 64
Pépites: 203
Banque: 0

[RESOLU] Sqlca.sqlnrows = 0 avec SQL SERVER 2005

Bonjour,

Actuellement nous travaillons avec SQL SERVER 2000, dans certains cas nous utilisons le contenu de la variable SQLCA.SQLNROWS pour déterminer si une rèquete SQL à fonctionner. Normalement cette zone contient le nombre de lignes traitées, lues ....
Si la valeur = 0, aucun données lues ou retournées.

Sur un autre PC, nous avons installé SQL SERVER 2005, et nous avons installé la base.
Maintenant avec les MEMES programmes, dans certains cas, la valeur retournée dans SQLCA.SQLNrows = 0 alors que la requète executée a bien trouve les donnees (controle par debug)

Est-ce que quelqu'un a une idée.

(Powerbuilder 10.2.1)

D'avance Merci

Cordialement

Dernière modification par le_gone_de_lyon (25-02-2008 13:05:03)

Hors ligne

 

#2 20-02-2008 09:36:49

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Sqlca.sqlnrows = 0 avec SQL SERVER 2005

Bonjour, dans la doc PB :

SQLNRows    Long    The number of rows affected (the database vendor supplies this number, so the meaning might not be the same in every DBMS).

même si dans ton cas il s'agit du même SGBDR, il y a peut-être un paramètre qui différe à ce niveau

le mieux est d'utiliser SQLCode :

SQLCode    Long    The success or failure code of the most recent operation.Return codes:
0 - Success
100 - Not found
-1 - Error (use SQLDBCode or SQLErrText to obtain the details)


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 20-02-2008 09:50:27

le_gone_de_lyon  
Membre Geek
Lieu: LYON
Date d'inscription: 12-09-2006
Messages: 64
Pépites: 203
Banque: 0

Re: [RESOLU] Sqlca.sqlnrows = 0 avec SQL SERVER 2005

Le probleme est que nous avons beaucoup utilisé cette possibilité dans notre application.

Il faudrait re-suivre toute l'application qui tourne tres bien avec cette possibilité en SQL SERVER 2000.

S'il y a un paramètrage particulier pour SQL SERVER 2005, j'aimerais bien le connaitre.

A moins que l'on me dise que l'utilisation du sqlnrows n'est plus possible avec SQL SERVER 2005 !!!

Merci quand même pour ta réponse, c'est la solution extrème !!!!!!!

Hors ligne

 

#4 20-02-2008 10:10:37

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Sqlca.sqlnrows = 0 avec SQL SERVER 2005

je comprends ta problématique...
mais en faisant une recherche, j'ai trouvé un commentaire de l'illustre Breck Carter de TeamSybase :

Breck Carter a écrit:

I am going to assume "don't use SQLNrows in PB" is the right answer.



voir le sujet


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#5 20-02-2008 10:30:14

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Sqlca.sqlnrows = 0 avec SQL SERVER 2005

Même si cela ne concerne en principe pas le select, essaye : SQLCA.DBParm="RecheckRows=1"

ou alors un select @@rowcount juste après ton select...


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#6 20-02-2008 11:07:01

le_gone_de_lyon  
Membre Geek
Lieu: LYON
Date d'inscription: 12-09-2006
Messages: 64
Pépites: 203
Banque: 0

Re: [RESOLU] Sqlca.sqlnrows = 0 avec SQL SERVER 2005

Bonjour,

Je viens d'essayer en mettant <recheckrows=1> dans DBparm, j'ai toujours le probleme

Merci quand même pour ta réponse et tes recherches.

Je m'apercois qu'a priori le SQLNrows ne serait gérer que pour les INSERT, DELETE et UPDATE

Cela marche avec le SELECT INTO pour le sql server 2000 mais plus pour le sql server 2005 (changement paramètrage par defaut ou plus supporte ??????????)

Encore merci

Hors ligne

 

#7 20-02-2008 11:10:18

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: [RESOLU] Sqlca.sqlnrows = 0 avec SQL SERVER 2005

bon courage à toi...
et pour ce soir, on y croit


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#8 20-02-2008 11:26:06

le_gone_de_lyon  
Membre Geek
Lieu: LYON
Date d'inscription: 12-09-2006
Messages: 64
Pépites: 203
Banque: 0

Re: [RESOLU] Sqlca.sqlnrows = 0 avec SQL SERVER 2005

Bonjour,

Voici une précision sur mon problème (c'est fou), dans certains cela marche :

1> exemple qui ne marche pas et renvoie la valeur 0 :

SELECT zonesql INTO :ls_zonesql FROM UTILISATEUR WHERE UTILI = :nom_uti USING SQLCA;

la zone <nom_uti> contient le code utilisateur et est bien présente dans la table => ls_zonesql est bien chargée à la bonne valeur
mais SQLCA.SQLNrows = 0 !!!!!!!!!!!!!!!!!!!

2> exemple qui marche et renvoie la valeur 1 :

SELECT zonesql INTO :ls_zonesql FROM UTILISATEUR WHERE UTILI = 'JYB'USING SQLCA;

j'ai mis en dur le nom de l'utilisateur dans la requete  => ls_zonesql est bien chargée à la bonne valeur

ET  SQLCA.SQLNrows = 1 !!!!!!!!!!!!!!!!!!!


A priori, si dans le WHERE, on fait appel à des variables, ==> SQLNrows ne marcherait plus ?!?!?!?!?!?


Quelqu'un aurait-il une explication ??

Merci

cordialement

Hors ligne

 

#9 20-02-2008 11:36:02

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Sqlca.sqlnrows = 0 avec SQL SERVER 2005

Salut
Alors faut surement jouer sur les DisableBind & StaticBind


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#10 20-02-2008 11:38:59

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Sqlca.sqlnrows = 0 avec SQL SERVER 2005

et le select @@rowcount ?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#11 25-02-2008 13:04:38

le_gone_de_lyon  
Membre Geek
Lieu: LYON
Date d'inscription: 12-09-2006
Messages: 64
Pépites: 203
Banque: 0

Re: [RESOLU] Sqlca.sqlnrows = 0 avec SQL SERVER 2005

bonjour,

Apres plusieurs essais en jouant avec le parametre <disablebind> et <staticbind>, je suis arrivé à faire marcher l'application.

En mettant disablebind=1 dans le parametre "DBParms" (chaine de connexion) au moment de la connexion ODBC,

Le select into avec une variable dans le where fonctionne et la valeur retournée pour nrows = 1

Merci pour cette reponse !!!

Je vais tester le reste de l'application avec cette modif !!

Encore merci

Cordialement

Hors ligne

 

#12 25-02-2008 13:06:43

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Sqlca.sqlnrows = 0 avec SQL SERVER 2005

Merci pour ton retour


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#13 19-03-2008 17:29:26

le_gone_de_lyon  
Membre Geek
Lieu: LYON
Date d'inscription: 12-09-2006
Messages: 64
Pépites: 203
Banque: 0

Re: [RESOLU] Sqlca.sqlnrows = 0 avec SQL SERVER 2005

Bonjour,

Pour information, j'ai installer SQL SErveur 2005 et PB10 sous Vista, cela ne marche plus => j'ai de nouveau sqlnrows = 0 peu importe les paramètres !!!!!!!!!!

A plus

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22