Pas de problème (pb), que du PowerBuilder (PB) ^^

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 25-09-2007 12:59:15

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

[RESOLU] Limitation à 32767 caractères ???

Bonjour à tous,

je me permets de poster ce message suite à un problème lors de la récupération de données sur un champ de type TEXTE dans une table d'une base de données Mysql.

En effet, j'ai tenté d'utiliser ODBC ainsi que le lien direct PB pour récupérer un enregistrement issu d'un champ TEXTE dans une table.

Problème : Cet enregistrement semble tronqué lors de son extraction de la base de données. J'obitens 32767 caractères ASCII au lieu de 33140 stockés dans la BDD.

Je récupère ce champ dans une variable de type STRING (que j'affiche à l'écran), ce qui à priori ne pose aucun soucis !

Je fais la même chose avec DELPHI et j'ai bien tous les caractères attendus... Je pense au vue de la taille maxi récupérée qu'il y a une "bride" ou plutot une limitation du nombre de caractère récupéré via PB? Comment accepter des tailles plus importantes ou tout simplement comment s'en sortir ?

Quelqu'un aurai t il une idée de ce qui peut se passer ?

Ci joint ma config de dev :

PB 10.5.1 build 66.02 / Mysql V5.0.44 / ODBC v3.51 Driver

Merci d'avance pour le coup de main.

Cordialement.

PS: Je n'utilise pas DELPHI pour mon application donc pas de petit malins svp ;-)

Dernière modification par fmxstyle (01-10-2007 15:14:25)


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#2 25-09-2007 13:05:30

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

Re: [RESOLU] Limitation à 32767 caractères ???


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

Hors ligne

 

#3 25-09-2007 13:15:52

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

Re: [RESOLU] Limitation à 32767 caractères ???

sinon, dans ton dbparm, tu rajoutes ceci :
DBTextLimit='34000', ou DBTextSize='34000'


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

Hors ligne

 

#4 25-09-2007 14:20:43

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: [RESOLU] Limitation à 32767 caractères ???

ok pour le fichier .ini, je l'ai bien modifié... redemarré restesté et pas mieux !

J'ai changé la valeur du DBTextLimit='65535' dans le dbparm en plus du changement sur le .INI et pas mieux non plus !

Y a t il une proprieté supplémentaire à modifier sur le driver ODBC utilisé ?

Merci d'avance

Dernière modification par fmxstyle (25-09-2007 14:22:11)


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#5 25-09-2007 16:12:56

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

Re: [RESOLU] Limitation à 32767 caractères ???


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

Hors ligne

 

#6 26-09-2007 07:27:05

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: [RESOLU] Limitation à 32767 caractères ???

Salut pick ouic,

Comme le spécifiait le message précedent j'ai changé l'ensemble des PBMaxTextSize et PBMaxBlobSize du fichier pbodb105.ini....

Exemple :

Code: ini

[SQL Server]
PBCatalogOwner='dbo'
PBSyntax='SYBASE_SYNTAX'
PBDateTime='DEFAULT_DATETIME'
PBFunctions='SYBASE_FUNCTIONS'
PBSpecialDataTypes='SYBASE_SPECIALDATATYPES'
PBObjectIDs='YES'
PBMaxBlobSize='65535'
PBMaxTextSize='65535'
PBDWDynamic='NO'
SQLSrvrTSPrefix='0x'
PBTrimCatCharColumns='YES'
PBUseProcOwner='YES'
IdentifierQuoteChar='"'


Sinon j'ai tenté de placer le résultat de la requete sur mon champ de type TEXTE vers un champ de type blob et PB crashe illico presto !

Autre test, j'ai changé le type de données dans la table de la base de données du type TEXTE vers MEDIUMTEXT et pas mieux...

Y'aurai t il par hasard un autre fichier de configuration relatif à PB à changer pour que je puisse enfin avoir mon texte entier ?!?

Merci d'avance pour ton aide.


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#7 26-09-2007 09:38:53

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: [RESOLU] Limitation à 32767 caractères ???

Ci joint la chaine de connexion utilisée pour tester la récupération de champ TEXTE dans une STRING :

string    sql, res
any        result[]
blob        res2

// Réglages des param. de connexion
SQLCA.DBMS            = "ODBC"
SQLCA.Database       = "mydatabase"
SQLCA.LogID            = ""
SQLCA.LogPass         = ""
SQLCA.ServerName      = ""
SQLCA.AutoCommit      = True
SQLCA.Lock              = "RU"
SQLCA.dbparm         = "ConnectString='DSN=Test;SERVER=127.0.0.1;DATABASE=mydatabase;UID=toto;PWD=toto;OPTION=16387',StaticBind=0,Date=' \''dd/MM/yy\'' ',Time=' \''HH:MM\'' ',DecimalSeparator=',',DisableBind=1,ConnectOption='SQL_OPT_TRACE,SQL_OPT_TRACE_ON;SQL_OPT_TRACEFILE,c:\temp\odbctrace.log'"

// Etablissement de  la connexion ODBC sur la BDD

connect using SQLCA;

// Gestion d'erreur   
if SQLCA.sqlcode <> 0 then
    MessageBox("Error connecting to database, please check your settings", sqlca.sqlerrtext)
    return
end if   

// Exécution de la requete et récupération du champ TEXTE dans une variable STRING   
SELECT textelines INTO :res FROM table_texte WHERE textename = 'test';

MessageBox(string(len(res)), string(res))

Disconnect using sqlca;



Une idée ?????


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#8 26-09-2007 09:43:38

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

Re: [RESOLU] Limitation à 32767 caractères ???

http://www.powerbuilder.org/modules.php … mp;sid=180  ?
il y aurait un lien avec la version build ?


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

Hors ligne

 

#9 26-09-2007 09:57:03

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: [RESOLU] Limitation à 32767 caractères ???

Je suis sous une build 66.02 de PB10.5 donc cela ne devrait pas poser de problème....

Mon collegue a tésté sur sa machine où il a installé le tout dernier patch PB EBF soit la build 7016 et pareil... donc cela n'est pas le probleme...

Pourrai tu tester ce morceau de code dans un champ TEXTE rempli au dessus de 32767 caractères sur une bdd quelconque (mysql si tu avais) et me dire ce que tu récupère à la fin ? Pense à modifier le .ini si jamais tu teste le morceau de code en question.

Merci d'avance pour ton aide.


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#10 26-09-2007 13:31:58

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

Re: [RESOLU] Limitation à 32767 caractères ???

désolé, mais je n'ai plus d'idées...
si quelqu'un a autre chose ?


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

Hors ligne

 

#11 26-09-2007 14:14:29

Anpi  
Membre Geek
Date d'inscription: 22-04-2007
Messages: 59
Pépites: 3,000
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Limitation à 32767 caractères ???

Bon, on peut pt'et repartir du début...

Ta donnée, tu la récupères dans une datawindow ?
Si oui, la taille du champ est suffisante ?

Anpi

Dernière modification par Anpi (26-09-2007 14:43:39)

Hors ligne

 

#12 01-10-2007 13:10:04

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: [RESOLU] Limitation à 32767 caractères ???

Je me suis debrouillé autrement car je manquais de temps pour chercher l'info qui me manquais...

J'ai testé le nombre total de caractères de mon enregistrement, le récupère entierement si il ne dépasse pas 32767 caractères, sinon j'utilise une boucle qui va me concatener le retour d'une requete utilisant la fonction SUBSTRING(fieldname, startpos, length), soit un découpage de l'enregistrement puis une concaténation de celui ci dans une string.

J'arrive a m'en sortir grace a cela, ce n'ai pas le rêve donc si vous savez comment récupérer + de 32767 caractères sur un enregistrement d'une base de données, faites le moi savoir...

Merci. ++


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22