|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Limitation procédure stockée SQL Server |
Débuté par jejestanko, 13 sep. 2022 10:55 - 4 réponses |
| |
| | | |
|
| |
Membre enregistré 3 messages |
|
Posté le 13 septembre 2022 - 10:55 |
Bonjour à tous,
Cela faisait un moment que je voulais signaler le problème suivant : Dans mes programmes où j'utilise SQL Server, je code principalement avec des procédures stockées. Lors de l'appel de ces procédures stockées avec l'accès natif SQL Server, les paramètres d'entrée de type texte long (varchar(max), text) sont automatiquement tronqués par l'accès natif à 1026 caractères (vérifié avec le profiler) ! Je suppose que je ne suis pas le seul à voir constater ce problème qui est très ennuyeux. Est ce que quelqu'un a une solution de contournement viable ? D'avance, merci à tous |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 682 messages |
|
Posté le 13 septembre 2022 - 11:22 |
Passer par HExecuteRequeteSQL() avec le paramètre hSansCorrection ?
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 messages |
|
Posté le 13 septembre 2022 - 11:43 |
C'est ce que je fais systématiquement bien sûr mais ça ne permet pas de résoudre ce problème... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 messages |
|
Posté le 14 septembre 2022 - 10:08 |
Re: Après de nouveaux tests, il s'avère que le problème se pose uniquement lorsque vous utilisez l'accés natif SQL Server via OLE DB. Le problème n'existe pas avec ODBC. |
| |
| |
| | | |
|
| | |
| |
Posté le 08 juillet 2025 - 09:25 |
Bonjour,
Pour information le résultat est correct en utilisant une variable de type buffer pour alimenter la variable text ou varchar(max) à l'appel de la procédure stockée.
sdSQLAutomate est une Source de Données nID est entier sur 8 octets bufTRSFILE est un Buffer = sImportPV // chaine ANSI de 10547 caractères
sdSQLAutomate.TRSENTITE = 99 sdSQLAutomate.TRSPROFIL = "" sdSQLAutomate.TRSFILE = bufTRSFILE sdSQLAutomate.ExécuteRequêteSQL(gcnxWAVESOFT,hRequêteSansCorrection,"[dbo].[ws_sp_add_tache_automate] @TRSENTITE,@TRSPROFIL,@TRSFILE") nID=sdSQLAutomate.return_value
Test est une Requête SQL = [ SELECT LEN(TRSFILE) FROM WSAUTOMATE WHERE WSAUTOMATE.TRSID={pID} ] Test.pID=sdSQLAutomate.return_value Test.ExécuteRequête() // la requête renvoie bien 10547
Si ça peut aider quelqu'un...
Erick |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|