2010-01-21 4 views
2

Au cours des derniers jours, nous avons vu des violations d'accès aléatoire sur Delphi 2006 en utilisant ClientDataSet lors du chargement d'un bloc XML mais les erreurs disparaissent lors de l'utilisation de CodeGear 2007 rad Studio. J'ai un étrange sentiment que cela va revenir et nous hanter à l'avenir. Alors, comment puis-je déboguer la procédure de chargement de xml pour une méthode clientdataset.LoadFromStream?Comment déboguer un clientDataSet delphi 2006 si possible

Je peux voir qu'il est défini dans dbclient.pas mais je n'arrive pas à trouver la section de traitement xml.

JD

+0

Alors pourquoi ne pas porter cette chose jusqu'en 2007 et y rester? –

Répondre

5

Je ne sais pas si vous avez déjà essayé, mais il est tout à fait légal (et supporté) d'utiliser la version Delphi 2007 de midas.dll avec une application Delphi 2006. Étant donné qu'Embarcadero a corrigé certains bogues DataSnap dans Delphi 2007, il est possible que les erreurs que vous voyez soient causées par un bogue de Delphi 2006. Il vaut la peine d'essayer de remplacer la version 2007 de midas.dll par votre application Delphi 2006 et de voir si les erreurs disparaissent. Cela ne résoudra peut-être pas le problème, mais cela vous épargnera beaucoup d'ennuis et de frustrations si c'est le cas.

+0

Merci Craig pour l'info. Lorsque nous expédions le produit, nous ne livrons pas avec midas.dll. J'étais curieux de savoir comment nous pouvions déboguer le clientdataset (pour référence future). –

+0

Eh bien, vous pouvez déboguer à travers DBClient.pas, comme d'autres l'ont suggéré. Mais la plupart des ClientDataSet * est * midas.dll. La seule façon de déboguer * that * est d'obtenir D2010, qui inclut son code source (C++!) Ou d'utiliser un désassembleur. –

+0

Si nous ne distribuons pas le fichier midas.dll, est-ce que delphi suffit de lier le code nécessaire dans l'exe? –

0

t-il été un certain temps depuis ive été en 2006, mais si je me souviens bien

tour sur les paquets de débogage, alors vous devriez simplement être en mesure d'entrer dans ce

+0

Salut, j'ai debug dcus vérifié et aucun paquet d'exécution construit avec l'exe. Je peux entrer dans DbClient.pas mais je n'arrive pas à trouver où le chargement de xml a lieu. –

+4

Il se passe dans Midas.dll, qui, comme d'autres ont dit que vous ne recevez pas le code source jusqu'à Delphi 2010 (et puis, je pense, seulement avec certaines références). Puisque vous ne pouvez pas tracer dans Midas.dll sans la source, et que vous n'avez pas la source disponible, vous ne pouvez pas déboguer le code de chargement XML. –

0

Pour autant que je sais LoadFromStream ne peut pas être utilisé pour charger des fichiers XML, les données du flux doivent être dans le format interne utilisé par l'ensemble de données client. Essayez plutôt de définir la propriété XMLData.

+0

Désolé, c'est ce que je voulais dire. J'essaie de trouver où le format interne est chargé afin que je puisse déboguer. –

Questions connexes