PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Problème avec la fonction SQLColonne
Problème avec la fonction SQLColonne
Started by rly, Apr., 11 2006 6:58 PM - 5 replies
Posted on April, 11 2006 - 6:58 PM
Salut,

j'ai toujours un message d'erreur losque j'essaye d'obtenir les colonne d'une table de ma base de données.

J'utilise les fonctions suivantes:

numconnexion=SQLConnecte(numip,login,mdp,labase,"MySQL")

sTexte=SQLColonne(numconnexion,latable,Faux)

La connexion se passe bien, mais lorsque je passe sur la fonction SQLColonne rien ne va plus...

j'ai le message (pas sympa du tout) qui me dit:

Erreur à la ligne 22 du traitement Procédure locale remplirtable.
Vous avez appelé la fonction SQLColonne.
Une erreur système inattendue est survenue.
Si cet incident se produit de manière systématique lorsque vous exécutez les mêmes manipulations, il est conseillé de transmettre au Support Technique Gratuit :
- une description des circonstances de l'incident
- les lignes de code, une fenêtre ou un projet permettant de reproduire le problème
- les informations techniques suivantes

Détails techniques :

Module : MSVCRT.dll
Adresse de base : 77BE0000
Erreur système : Access violation (GPF)
EIP = 77C178AC
OS : Windows XP ou .NET Service Pack 2(5.1.2600)


Informations techniques

Projet : MySQL_test

Dump de l'erreur du module <WD100VM.DLL> <10.00Mo>.

- Appel WL :
Traitement de <FEN_Fenêtre1.PROCEDURE.remplirtable>, ligne <22>, thread <0>
Fonction <SQLColonne>, n° de syntaxe <1>

- Niveau : erreur fatale (EL_FATAL)

- Code erreur : 1020

- Code erreur WD55 : 0

- Pas de code d'erreur système

- Pas de message d'erreur système

- Que s'est-il passé ?
Une erreur système inattendue est survenue.
Si cet incident se produit de manière systématique lorsque vous exécutez les mêmes manipulations, il est conseillé de transmettre au Support Technique Gratuit :
- une description des circonstances de l'incident
- les lignes de code, une fenêtre ou un projet permettant de reproduire le problème
- les informations techniques suivantes

Détails techniques :

Module : MSVCRT.dll
Adresse de base : 77BE0000
Erreur système : Access violation (GPF)
EIP = 77C178AC
OS : Windows XP ou .NET Service Pack 2(5.1.2600)

- Infos de debug :
Registres :

EIP = 77C178AC EBP = 0012F038
EAX = 00B0114C EBX = 00000003
ECX = 00000003 EDX = 0000000E
ESI = 00B0114C EDI = 00B03EA8

Pile des appels :

[MSVCRT.dll (77BE0000)] 77C178A0 : strlen() + 12 bytes
[WD100MSQL.DLL (29660000), 10.00Ac, 80F100037 ] 29666EE9 : GeneralParam() + 141185 bytes
[WD100MSQL.DLL (29660000), 10.00Ac, 80F100037 ] 29666EE9 : GeneralParam() + 140771 bytes
[WD100MSQL.DLL (29660000), 10.00Ac, 80F100037 ] 29666EE9 : GeneralParam() + 149413 bytes
[WD100MSQL.DLL (29660000), 10.00Ac, 80F100037 ] 29666EE9 : GeneralParam() + 149523 bytes
[WD100MSQL.DLL (29660000), 10.00Ac, 80F100037 ] 29666EE9 : GeneralParam() + 149336 bytes
[WD100MSQL.DLL (29660000), 10.00Ac, 80F100037 ] 29666EE9 : GeneralParam() + 147208 bytes
[WD100HF.DLL (25260000), 10.00Cg, 01F100037f] 25371D39
[WD100HF.DLL (25260000), 10.00Cg, 01F100037f] 25373453
[WD100HF.DLL (25260000), 10.00Cg, 01F100037f] 2526DE9B
[WD100HF.DLL (25260000), 10.00Cg, 01F100037f] 2527A633 : DeclareProxy() + 50345 bytes
[WD100VM.DLL (25E60000), 10.00Mo, 01F100037f] 25E71260 : WL_SetParam() + 79494 bytes
[WD100VM.DLL (25E60000), 10.00Mo, 01F100037f] 25F52890
[WD100VM.DLL (25E60000), 10.00Mo, 01F100037f] 25E71260 : WL_SetParam() + 30272 bytes-> INVALID, stack increased by 4
[WD100VM.DLL (25E60000), 10.00Mo, 01F100037f] 25EACA30 : nConversionDepassement() + 239216 bytes-> INVALID, stack increased by 4
[WD100VM.DLL (25E60000), 10.00Mo, 01F100037f] 25E71260 : WL_SetParam() + 155248 bytes-> INVALID, stack increased by 4
[WD100VM.DLL (25E60000), 10.00Mo, 01F100037f] 25E71260 : WL_SetParam() + 155248 bytes-> INVALID, stack increased by 4
[WD100VM.DLL (25E60000), 10.00Mo, 01F100037f] 25E71260 : WL_SetParam() + 155248 bytes-> INVALID, stack increased by 4
[WD100VM.DLL (25E60000), 10.00Mo, 01F100037f] 25E71260 : WL_SetParam() + 34432 bytes-> INVALID, stack increased by 4
[WD100VM.DLL (25E60000), 10.00Mo, 01F100037f] 25E71260 : WL_SetParam() + 34368 bytes-> INVALID, stack increased by 4
[WD100VM.DLL (25E60000), 10.00Mo, 01F100037f] 25E71260 : WL_SetParam() + 33680 bytes-> INVALID, stack increased by 4

Fonction (7,211)

- Infos attachées :
EIT_DATEHEURE : 11/04/2006 17:03:22
EIT_PILEWL :
Procédure locale remplirtable (FEN_Fenêtre1.PROCEDURE.remplirtable), ligne 22
Clic sur listebase (FEN_Fenêtre1.listebase), ligne 9

- Identifiant dans le .err : 1020

Et là je ne vois vraiment pas ce qui cloche dans mon code...

Merci pour votre aide.
Posted on April, 12 2006 - 11:22 AM
Bonjour,
Voici le genre de code que j'utilise depuis longtemps et qui fonctionne :


ExecuteReq(Texte_req1,Nomreq1) ALORS
//Positionnement sur la première ligne du résultat de la requête
SQLAvance(Nomreq1)
//Récupération de la colonne1 de la requête
D_Type_User = SQLLitCol(Nomreq1,1)
//Fin d'éxecution de la requête
SQLFerme(Nomreq1)


Bon Dev
A+
Antoine
Posted on April, 12 2006 - 12:53 PM
Merci pour cette exemple. Mais ne il réccupère le resultat de la colonne, mais ce que je veux c'est réccuperer le nom de cette colonne.

Ex:

Nom Prenom Age
Dupons Daniel 35
... ... ...

Ce que je cherche à obtenir dans une variable texte c'est la chaine "Nom"+CR+"Prenom"+CR+"Age"

@bientot

Romain
Posted on April, 12 2006 - 1:42 PM
J'ai essayé su un de mes prog. : Cela fonctionne

Il faut mettre le nom de la table entre "

sTexte=SQLColonne(numconnexion,"latable",Faux)


Le résultat que j'ai eu est bien l'ensemble des noms des colonnes séparés par des TAB.

Pour les récupérer un à un, faire un ExtraitChaîne(sTexte,n,TAB) (voir aide)

Voilà, j'espère que cela te convient.

A+
Antoine
Posted on April, 12 2006 - 4:36 PM
Franchement je ne comprends pas....
J'ai testé de faire cette commande en "dure" dans mon appli.

C'est à dire que j'ai une BDD nommée Gestock
Dans Gestock j'ai 6 tables, fab, piece, type, client, sortie et prix.

Je fais un

Cnx=SQLConnect("127.0.0.1", root, "", "Gestock","MySQL")
sTexte=SQLColonne(cnx,"fab",Faux)

Et j'ai toujours une erreur fatale qui stop mon appli et qui me donne le message que j'ai indiqué dans mon 1er post!

Ton test tu l'as fait sur une base MySQL ou pas?

merci de ton aide car là je ne comprend plus! :-(
Posted on April, 12 2006 - 6:16 PM
Je Viens de trouver!!!!
Le problème provenait de la DLL libMSQL.dll qui est fournie avec le logiciel EasyPHP qui est buggée. J'ai juste prise celle fournie avec l'install de MySQL 5.0 et là comme par magie plus de pb!!!! C'est bon à savoir.

Il faut savoir que dans EasyPHP la version de MySQL est la V 4.1.9

@ bientot pour de nouvelles aventures....