Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Memo-поля в Pervasive / 17 сообщений из 17, страница 1 из 1
26.07.2007, 16:32
    #34686608
Nike85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo-поля в Pervasive
Здравствуйте! Какой TFieldtype необходимо установить для поля TTable, которое будет соответствовать Memo-полю базы, которое определяется утилитой Butil как LString. (В Галактике это поле определяется как Lvar).
А хочу я это определить, чтобы данные из мемо-поля можно было читать из дельфийского приложения.
...
Рейтинг: 0 / 0
26.07.2007, 16:35
    #34686621
Nike85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo-поля в Pervasive
Сорри, забыл:
Версия Delphi - 7.0, версия первазива - 9.1
...
Рейтинг: 0 / 0
27.07.2007, 07:28
    #34687659
БПА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo-поля в Pervasive
Читай 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
27.07.2007, 10:25
    #34687968
Nike85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo-поля в Pervasive
проблема в том, что изначально я и использовал связку - TpvQuery, TDataSource, TDBGrid+TDBMemo.
Delphi определяет данное поле (имеет название DATATEXT) как TBlobField (BlobType=ftBlob), и, в итоге, в контроле ДБМемо ничего не выводится по текущей записи, хотя данные там есть (это видно в Галактике) (естественно, квери активен). Такая картина повторяется для всего набора записей.
Пробовал ставить тип BlobType=ftMemo; создавать собственное поле в PvQuery FieldList типа TMemoField с BlobType=ftMemo - все равно мемо-поле пустое.

Что еще нужно для счастья? Судя по всему, версия компонентов Первазива - 9 Sp 2. Называются файлы так: xx 200d70.bpl
...
Рейтинг: 0 / 0
27.07.2007, 13:30
    #34688901
БПА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo-поля в Pervasive
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
27.07.2007, 13:38
    #34688939
БПА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo-поля в Pervasive
В догонку

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

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

Что это за зверь такой?
*Примерно понятно, что здесь хранятся аски-коды текста в шестнадцатиричном формате, вопрос как к ним получить доступ из делфи? Потому что при любом типе поля у меня получалось пустое значение.
...
Рейтинг: 0 / 0
30.07.2007, 12:49
    #34692400
БПА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo-поля в Pervasive
Формат файла таблицы какой? м.б. он еще 6.15, попробубуй rebuild в формат 9.5 перевести.
Чего утилита maintenance показывает о таблице?
...
Рейтинг: 0 / 0
30.07.2007, 13:06
    #34692463
БПА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo-поля в Pervasive
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
30.07.2007, 15:14
    #34693014
Nike85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo-поля в Pervasive
Вот что пишет 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
31.07.2007, 07:34
    #34694413
БПА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo-поля в Pervasive
Записей мало конвертани в 9.5.
PSQL9.1 пропатчи до 9.5 ( в 9.1 - это бетта в ней ошибки были).
Я щас PSQL SUMMIT v10 пытаю.


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

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

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

бутиль вообще не дает структуру таблицы (тока инфу о файле и его индексах)
структура в *.ddf файлах или с самой. проге описана, можно PCC посмотреть
...
Рейтинг: 0 / 0
31.07.2007, 15:20
    #34695874
Nike85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo-поля в Pervasive
А разве вот это не информация бутиля о полях?
Код: 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
01.08.2007, 07:29
    #34697076
БПА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo-поля в Pervasive
Это информация о индексах( ключах).
Без структуры таблицы ничего нельзя делать вообще.

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



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


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