Проблема Delphi TADOQuery SaveToFile - PullRequest
1 голос
/ 12 мая 2010

Я написал приложение, которое позволяет пользователю создавать и выполнять запрос, а затем сохранять отчет в файл. Они могут загрузить отчет из файла позднее и просмотреть на экране.

Я использую компонент TADOQuery для запуска запроса и вызываю SaveToFile, когда запрос вернул данные. Затем я использую LoadFromFile, чтобы загрузить данные обратно в TADOQuery, и оттуда я могу читать данные в виртуальном списке. В обоих случаях я указываю "pfXML" в качестве параметра формата.

Пользователь сообщил о проблеме, из-за которой в одном из полей отчета вместо читаемого текста отображается мусор. После исследования определение поля в их XML-документе для этого конкретного поля указывается как "dt: type = 'bin.hex'". Когда я запускаю тот же запрос в системе, определение поля в моем документе xml указывается как «dt: type = 'string'".

Поэтому мой вопрос: почему есть разница? Базы данных идентичны, так почему данные сохраняются как bin.hex в системе пользователя и как строка для всех остальных? Возможно, более конкретно, как определяется тип данных? Когда я вызываю SaveToFile, как компонент TADOQuery узнает, что представляет собой тип данных, и что он должен записать в XML-документ в качестве типа данных?

Это происходит из-за того, что данные отправляются обратно на ПК в шестнадцатеричном формате, и компонент TADOQuery получает от этого подсказку, или же он (по какой-то причине) считает, что тип данных для этого поля является шестнадцатеричным, и он изменяет данные для соответствия?

Я не могу найти в Интернете ничего об этом и не могу понять, что происходит, поэтому любая помощь будет принята.

Ответы [ 2 ]

0 голосов
/ 03 июня 2010

Похоже, это как-то связано с настройкой сервера. У нас была проблема только на одном клиентском сайте и на очень старой версии OS400 (запросы выполняются по базам данных DB2).

0 голосов
/ 12 мая 2010

На первый взгляд, для меня это звучит как кодировка юникод / ​​символ.

...