Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
Обращаюсь к тем кто программирует на делфе и кто стыкался с этим методом. Мне надо в поле типа CHAR dbf-таблицы записать бинарные данные. Провел серию экспериментов и выяснил, что 1. вне зависимости от типа буфера если указать setdata(@buf, False) данные не записываются. 2. если указать setdata(@buf, true), то вне зависимости от типа буфера данные обрезаются по первому попавшемуся нулевому символу. Ну это и понятно, при этом данные приводятся к типу CHAR (напомню, что я записываю в поле типа CHAR). Соответственно, появилось 2 вопроса: 1. нафига борланд ввел этот второй параметр в методе setdata(), если при его равенстве False метод ничего не делает? 2. как мне всетаки переписать бинарные данные в это поле если в них встречается символ с кодом 0? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 17:54 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
появилось два ответа: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 18:07 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
А чем пользоваться? Мне надо как то их записать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 18:33 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
поищи компоненты от сторонних производителей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 18:36 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
Да вот нашел один. Tdbf называется. Он использует вс. функциональность от TDataSet так как порожден от него. Единственно е что он сам делает это пишет на диск не используя BDE. Соответственно, толку от него никакого. Может посоветуешь каки либо компоненты другие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 18:40 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
давно не работал с dbf - трудно что-то подсказать... помню когда-то писал через объекты Turbo Vision, но их уже не найти... в принципе, если задача однопользовательская, можно писать в файл, посмотреть заголовок dbf, сделать record на OPascal'e и туда его, но пока прицелишься - намучишься... может переводить эти бинарные данные в char перед записью? побайтно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 18:57 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
>может переводить эти бинарные данные в char перед записью? побайтно? Дык, именно так и делаю. Но как их теперь туда записать. Если пишешь, то они обрезаются по нулю. Соответственно, строка целиком не записывается. :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 19:11 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
хмм...может ссылочку писать на файл в поле и эти данные куда-нибудь в отдельный каталог, файлы f0001.bin and so on? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 19:20 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
Не, так я не могу. Это должна быть DBF. Ее потом клиппер читать должен. Может в самом деле буду сам напрямую в файл писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 19:42 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
можно конечно самому написать компонент для работы с этой мутью, посмотри что легче... а зачем вообще бинарные данные писать в чар? может как-то можно обойти этот столб? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 19:56 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
Не, это зашифрованые данные. Их потом прога на клипере читает и расшифровывает. После расшифровки это простая строка. Просто переписывать прогу эту я не хочу, да и не знаю на клиппере программить, но надо сделать для нее примочку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 19:59 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
так может сделать такую шировку чтоб без нуля? и писать себе спокойно? или это уже готовый модуль? в смысле шифрования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 20:02 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
шифровку в смысле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 20:05 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
Эта клипперовская прога использует этот метод шифрования. И я ей подставляю данные в том виде который она ждет. Прсто мои примочки работают гораздо быстрее чем эта клипперовская прога. Но и ее отбросить нельзя. Приходится подстраиваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 20:11 |
|
||
|
Проблемы с Проблема с TField.SetData
|
|||
|---|---|---|---|
|
#18+
короче извраты... придётся мучаться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 20:13 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2119455]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
73ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 280ms |
| total: | 453ms |

| 0 / 0 |
