powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Memo-поля в Pervasive
17 сообщений из 17, страница 1 из 1
Memo-поля в Pervasive
    #34686608
Nike85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Какой TFieldtype необходимо установить для поля TTable, которое будет соответствовать Memo-полю базы, которое определяется утилитой Butil как LString. (В Галактике это поле определяется как Lvar).
А хочу я это определить, чтобы данные из мемо-поля можно было читать из дельфийского приложения.
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34686621
Nike85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри, забыл:
Версия Delphi - 7.0, версия первазива - 9.1
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34687659
БПА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Читай help там про Delphi куча всего.
LString-> Longvarchar --> поле String переменной длины
Поставь фирменные компоненты от pervasive PDAC и не будет проблем.

-----------------отрывок из HELP-----------------------------------
Pervasive PSQL and Borland Data Types

This section details data type mappings.
Pervasive PSQL and Borland
Btrieve and Borland

Pervasive PSQL and Borland
The following table shows data type mappings from Pervasive PSQL column types to Delphi data types. Types on the left stored in Pervasive PSQL databases will be exposed by PDAC components as the types listed on the right

Pervasive PSQL Data --> Type Delphi Data Type
Binary ftBytes
Varbinary ftVarBytes
Longvarbinary ftBlob
Char ftString
Varchar ftString
Longvarchar ftMemo
Bigint ftBCD
Numeric ftBCD
Decimal ftBCD
Bit ftBoolean
Integer ftInteger
Smallint ftSmallInteger
Tinyint ftSmallInteger
Uint ftInteger
Usmallint ftWord
Utinyint ftWord
Ubigint ftBCD
Real ftFloat
Double ftFloat
Float ftFloat
Currency ftCurrency
Identity ftAutoInc
Smallidentity ftAutoInc
TimeStamp ftDateTime
Date ftDate
Time ftTime
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34687968
Nike85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблема в том, что изначально я и использовал связку - TpvQuery, TDataSource, TDBGrid+TDBMemo.
Delphi определяет данное поле (имеет название DATATEXT) как TBlobField (BlobType=ftBlob), и, в итоге, в контроле ДБМемо ничего не выводится по текущей записи, хотя данные там есть (это видно в Галактике) (естественно, квери активен). Такая картина повторяется для всего набора записей.
Пробовал ставить тип BlobType=ftMemo; создавать собственное поле в PvQuery FieldList типа TMemoField с BlobType=ftMemo - все равно мемо-поле пустое.

Что еще нужно для счастья? Судя по всему, версия компонентов Первазива - 9 Sp 2. Называются файлы так: xx 200d70.bpl
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34688901
БПА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Создал базу в РСС
СREATE TABLE "ProbaMEMO"( "Id" IDENTITY DEFAULT '0', "Num" INTEGER NOT NULL , "Memo" LONGVARCHAR NOT NULL

2. назаполнял всякой ерундой в РСС

insert into "ProbaMEMO"("memo") values ('ghfhfghfghgfhghwertewtertertttttttttttttttttttttttttttttttttttttttttttttttttt')

3. В дельфях
TForm1 = class(TForm)
PvS: TPvSession;
DataSource1: TDataSource;
DBM: TDBMemo;
Button1: TButton;
pt: TPvTable;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

Настроил на базу и в DBM все вижу.
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34688939
БПА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В догонку

PvS: TPvSession; --> Указать сервер
pt: TPvTable; --> Указать PvS (имя сессии), базу и таблицу
DataSource1 --> Указать pt
DBM: TDBMemo; --> Указать DataSource1 и поле "Мемо"
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34691854
Nike85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to БПА
Попробовал ваш пример - у меня он тоже работает.
А вот если пытаюсь читать из реальной таблицы - не выходит. Судя по всему, Галактика использует какой-то другой тип (еще раз - ею он определяется как Lvar, а butil-ем - как Lstring)
Попробую привести выгруженную запись из этой таблицы (см. приложенный дбф файл). Эта запись имеет следующее содержимое Мемо-поля:
Код: plaintext
1.
2.
         Оплата по настоящему договору производится на
         расчетный счет Поставщика в течение  30  календарных
         дней после поставки товара.

а PCC показывает следующее:
Код: plaintext
990000005458542020202020202020208EAFABA0E2A020AFAE20ADA0E1E2AEEFE9A5ACE320A4AEA3AEA2AEE0E320AFE0AEA8A7A2AEA4A8E2E1EF20ADA00D0A202020202020202020E0A0E1E7A5E2ADEBA920E1E7A5E2208FAEE1E2A0A2E9A8AAA020A220E2A5E7A5ADA8A520333020AAA0ABA5ADA4A0E0ADEBE50D0A202020202020202020A4ADA5A920AFAEE1ABA520AFAEE1E2A0A2AAA820E2AEA2A0E0A02E

Что это за зверь такой?
*Примерно понятно, что здесь хранятся аски-коды текста в шестнадцатиричном формате, вопрос как к ним получить доступ из делфи? Потому что при любом типе поля у меня получалось пустое значение.
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34692400
БПА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Формат файла таблицы какой? м.б. он еще 6.15, попробубуй rebuild в формат 9.5 перевести.
Чего утилита maintenance показывает о таблице?
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34692463
БПА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
9.5 не поддерживает LSTRING и LVAR.
Конвертировать надо утилитой.


Это из Help

Legacy Data Types

Some older (legacy) data types are not supported by the current release of Pervasive PSQL. The following table shows the new data type to use in place of the legacy data type.

Table A-10
Legacy Type Type Code Replaced by Type Code
LOGICAL(1) 7 UTINYINT 14
LOGICAL(2) 7 USMALLINT 14
LSTRING 10 VARCHAR 11
LVAR 13 LONGVARCHAR 21
NOTE 12 LONGVARCHAR 21
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34693014
Nike85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот что пишет butil о файле таблицы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
File Statistics for z:\data\d_advsel\docinfo.dat

File Version =  8 . 00 
Page Size =  3584 
Page Preallocation = No
Key Only = No
Extended = No

Total Number of Records =  53040 
Record Length =  160 
Data Compression = No
Variable Records = Yes
   Variable-Tail Allocation Tables = Yes
   Blank Truncation = No
Free Space Threshold =  5 %

Available Linked Duplicate Keys =  0 
Balanced Key = No
Log Key =  0 
System Data = No
Total Number of Keys =  5 
Total Number of Segments =  11 

Key         Position        Type            Null Values*               ACS
    Segment          Length           Flags              Unique Values
   0      1           1         8   Integer      M      --             53040    --
   1      1          76         2   Unsigned     MD     --                59    --
   1      2          78         2   Unsigned     MD     --                59    --
   1      3          80        81   Lstring      MD     --                59     0
   2      1          60         8   Integer      MD     --             53026    --
   2      2          76         2   Unsigned     MD     --             53026    --
   2      3          78         2   Unsigned     MD     --             53026    --
   2      4          68         8   Integer      MD     --             53026    --
   3      1           9         4   Date         MD     --             50562    --
   3      2          13         4   Time         MD     --             50562    --
   4      1          17         8   Integer      MD     --               192    --

Alternate Collating Sequence(ACS) List:
   0  NAtlTopS

Legend:
 < = Descending Order
 D = Duplicates Allowed
 I = Case Insensitive
 M = Modifiable
 R = Repeat Duplicate
 A = Any Segment (Manual)
 L = All Segments (Null)
 * = The values in this column are hexadecimal.
?? = Unknown
-- = Not Specified

The command completed successfully.
Первазив версии 9.1
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34694413
БПА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Записей мало конвертани в 9.5.
PSQL9.1 пропатчи до 9.5 ( в 9.1 - это бетта в ней ошибки были).
Я щас PSQL SUMMIT v10 пытаю.


Давай базу (эту таблицу и ddf файлы) - попытыю ее.
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34694978
Nike85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С конвертацией дело не так просто. Не я принимаю решение. Попробую тестовый сервер создать и в нем проверить.

А выложить наверное не получится, это таблица ПК Галактики docinfo, ее размер 24 мега. А папочка ддф 12 мегов весит
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34695012
Nike85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может сделать выборку (ну на 100 записей) из таблицы во временный файл и его скинуть вместе со структурой, что бутиль дает?
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34695154
БПА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nike85Может сделать выборку (ну на 100 записей) из таблицы во временный файл и его скинуть вместе со структурой, что бутиль дает?

Тока надо чтоб эта временная у тебя тоже не работала. :)

бутиль вообще не дает структуру таблицы (тока инфу о файле и его индексах)
структура в *.ddf файлах или с самой. проге описана, можно PCC посмотреть
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34695874
Nike85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А разве вот это не информация бутиля о полях?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Key         Position        Type            Null Values*               ACS
    Segment          Length           Flags              Unique Values
   0      1           1         8   Integer      M      --             53040    --
   1      1          76         2   Unsigned     MD     --                59    --
   1      2          78         2   Unsigned     MD     --                59    --
   1      3          80        81   Lstring      MD     --                59     0
   2      1          60         8   Integer      MD     --             53026    --
   2      2          76         2   Unsigned     MD     --             53026    --
   2      3          78         2   Unsigned     MD     --             53026    --
   2      4          68         8   Integer      MD     --             53026    --
   3      1           9         4   Date         MD     --             50562    --
   3      2          13         4   Time         MD     --             50562    --
   4      1          17         8   Integer      MD     --                192     --

Выкладываю выборку - 20 записей. В части из них Мемо-поле пустое, а где-то действительно заполненное.
Еще что может помочь, доктор :)? Я на первазив.коме искал, но ответа так и не нашел. Может вам ответят. По крайней мере надеюсь
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34697076
БПА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это информация о индексах( ключах).
Без структуры таблицы ничего нельзя делать вообще.

Структура хранится в отдельных. спец. файлах или зашита в программе.
как я знаю галактика пользуется плоским btrieve и не использует SQL запросы pervasive.



Сходи сюда
http://support.softlab.ru/Forum/ZoneForum/default.asp?Forum=6
...
Рейтинг: 0 / 0
Memo-поля в Pervasive
    #34697226
Nike85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не нашел ничего подходящего на том форуме. Система там не очень удобная - к части базы знаний доступ запрещен.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Memo-поля в Pervasive
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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