powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проблемы с Проблема с TField.SetData
16 сообщений из 16, страница 1 из 1
Проблемы с Проблема с TField.SetData
    #32081293
Oxy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oxy
Гость
Обращаюсь к тем кто программирует на делфе и кто стыкался с этим методом.
Мне надо в поле типа CHAR dbf-таблицы записать бинарные данные.
Провел серию экспериментов и выяснил, что
1. вне зависимости от типа буфера если указать setdata(@buf, False) данные не записываются.
2. если указать setdata(@buf, true), то вне зависимости от типа буфера данные обрезаются по первому попавшемуся нулевому символу. Ну это и понятно, при этом данные приводятся к типу CHAR (напомню, что я записываю в поле типа CHAR).

Соответственно, появилось 2 вопроса:
1. нафига борланд ввел этот второй параметр в методе setdata(), если при его равенстве False метод ничего не делает?
2. как мне всетаки переписать бинарные данные в это поле если в них встречается символ с кодом 0?
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081303
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
появилось два ответа:

Use SetData to assign data to a field in the format that is used by the underlying database table.
прим.2
Ultimately, any method of setting the data for the field component calls SetData, once the data has been parsed into the format expected by the database table.
SetData calls the OnValidate event handler before writing the data to the current record buffer. If the data is successfully written, SetData calls the OnChange event handler.

Buffer contains the field value in the field components underlying type.
ответ 1:
NativeFormat indicates whether the value in Buffer must be translated before the dataset assigns its value to its internal record.

ответ 2 (см.прим.2): не пользоваться методом TField.SetData.
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081330
Oxy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oxy
Гость
А чем пользоваться?
Мне надо как то их записать.
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081332
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поищи компоненты от сторонних производителей
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081334
Oxy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oxy
Гость
Да вот нашел один. Tdbf называется. Он использует вс. функциональность от TDataSet так как порожден от него. Единственно е что он сам делает это пишет на диск не используя BDE. Соответственно, толку от него никакого.
Может посоветуешь каки либо компоненты другие.
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081353
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давно не работал с dbf - трудно что-то подсказать...
помню когда-то писал через объекты Turbo Vision, но их уже не найти...
в принципе, если задача однопользовательская, можно писать в файл, посмотреть заголовок dbf, сделать record на OPascal'e и туда его, но пока прицелишься - намучишься...

может переводить эти бинарные данные в char перед записью? побайтно?
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081362
Oxy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oxy
Гость
>может переводить эти бинарные данные в char перед записью? побайтно?

Дык, именно так и делаю. Но как их теперь туда записать. Если пишешь, то они обрезаются по нулю. Соответственно, строка целиком не записывается. :-(
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081370
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хмм...может ссылочку писать на файл в поле и эти данные куда-нибудь в отдельный каталог, файлы f0001.bin and so on?
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081385
Oxy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oxy
Гость
Не, так я не могу. Это должна быть DBF. Ее потом клиппер читать должен.
Может в самом деле буду сам напрямую в файл писать.
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081387
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно конечно самому написать компонент для работы с этой мутью, посмотри что легче...

а зачем вообще бинарные данные писать в чар?
может как-то можно обойти этот столб?
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081388
Oxy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oxy
Гость
Не, это зашифрованые данные. Их потом прога на клипере читает и расшифровывает. После расшифровки это простая строка. Просто переписывать прогу эту я не хочу, да и не знаю на клиппере программить, но надо сделать для нее примочку.
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081389
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так может сделать такую шировку чтоб без нуля?
и писать себе спокойно? или это уже готовый модуль? в смысле шифрования?
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081392
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шифровку в смысле
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081395
Oxy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oxy
Гость
Эта клипперовская прога использует этот метод шифрования. И я ей подставляю данные в том виде который она ждет. Прсто мои примочки работают гораздо быстрее чем эта клипперовская прога. Но и ее отбросить нельзя. Приходится подстраиваться.
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081396
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
короче извраты...
придётся мучаться...
...
Рейтинг: 0 / 0
Проблемы с Проблема с TField.SetData
    #32081397
Oxy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oxy
Гость
Точно :-(
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проблемы с Проблема с TField.SetData
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]