Текущий архив: 2002.11.11;
Скачать: CL | DM;
ВнизСчитываю данные из текстового файла в парадоксовскую таблицу, пос Найти похожие ветки
← →
DN (2002-10-21 17:32) [0]леднее поле типа MEMO, выдает ошибку на отсутствие файла типа *.MB в котором как я понимаю должно храниться значение этого поля. Кто знает, подскажите что за файл, и как его организовать?
← →
Демонов Е.В. (2002-10-21 17:52) [1]Тип мемо обычно задаётся так : какоето количество символолв мемо поля хранится в самом парадоковском файле остальное в файле *.MB
(Так же и BLOB поля).
организовать его может и можно создав новую таблицу с таким же именем с такой же структурой и заполнив таким же количеством записей как и используемая вами - потом просто передрать файл *.MB - хотя ...... кто знает ? Здаётся мне что файл *.MB зделан не просто .. наверно в нем как то хитро организуется хранение данных - иначе просто небыло бы смысла.
Но всё равно попробуй. ...
← →
Демонов Е.В. (2002-10-21 17:53) [2]Что то я не понял - у вас уже есть парадоксовская таблица или ?
← →
DN (2002-10-22 09:18) [3]Таблица есть, я в нее считываю данные из текстового файла, все поля считывают в себя значения кроме этого MEMO
← →
Max Zyuzin (2002-10-22 09:31) [4]А у вас точно есть поле Memo в таблице?
← →
DN (2002-10-22 09:46) [5]Да
← →
gek (2002-10-22 09:46) [6]Приведи код
← →
DN (2002-10-22 10:08) [7]
if OpenDialog2.Execute then
begin
AssignFile(F, OpenDialog2.FileName);
Reset(F);
Table1.DisableControls;
while not EOF(F) do
begin
Readln(F,St1);
St := St + #13 + St1;
if St1 = "######" then
begin
Table1.Append;
SN:=StringReplace(St, "#", " ",Flags);
{ разбиение строки SN на значения полей для занесения в БД }
s:=SN; // исходная строка
s1:=Copy(s,1,pos(",",s)-1); // первая часть
Table1.FieldByName("Identifikator").AsString:=s1;
s1N:=Copy(s,pos(",",s)+1,Length(s)-pos(",",s));
s2:=Copy(s1N,2,pos(",",s1N)-2); // вторая часть
Table1.FieldByName("Vid_doc").AsString:=s2;
Delete(s2,Length(s2),1);
s2N:=Copy(s1N,pos(",",s1N)+1,Length(s1N)-pos(",",s1N));
s3:=Copy(s2N,2,pos(",",s2N)-3); // третья часть
Table1.FieldByName("Num_akt").AsString:=s3;
s3N:=Copy(s2N,pos(",",s2N)+1,Length(s2N)-pos(",",s2N));
s4:=Copy(s3N,2,8); // четвертая часть
Table1.FieldByName("Data").AsString:=s4;
s5:=Copy(s3N,11,Length(s2N)-11);// пятая часть
Table1.Next;
Delete(SN,1,Length(SN));
end;
CloseFile(F);
end
else
ShowMessage("Даааа-ааа-аа-а");
end;
← →
Max Zyuzin (2002-10-22 10:15) [8]Вылетает на первом же проходе?
А где у вас Table1.Post;
Зачем выделяем s5?
Table1.FieldByName("Data").value:=s4;? А так?
А вообще на диске есть файл с расширением *.MB? Может вы его случаем потерли или не дозаписали (если переписывали от куда нить)? Попробуйте создать таблицу еще раз...
← →
DN (2002-10-22 10:34) [9]>> Max Zyuzin
Table1.FieldByName("Data").AsString:=s4;
s5:=Copy(s3N,11,Length(s2N)-11);// пятая часть
// Table1.FieldByName("Note").AsMemo:=s5;
В комментарии строка, которая считывает данные в мемо-поле и не работает(извиняюсь, сразу не скопировал в сообщение)
Файл .MB есть рядом с .DB
Вылетает на первом проходе.
Сейчас попробую с value.
← →
DN (2002-10-22 11:03) [10]М..да, тоже самое "Not exact read/write .....MB"
← →
Max Zyuzin (2002-10-22 11:06) [11]Попробуй еще раз создать таблицу с такими же полями...
← →
gek (2002-10-22 11:23) [12]А так не пашет >
Table1.FieldByName("Note").Asstring:=s5;
← →
DN (2002-10-22 12:36) [13]>>Max Zyuzin
После пересоздания таблицы все заработало, файл .MB вырос с 2КБ до 36, но почему в этом поле MEMO не отображается его значение, а только (MEMO)????????
← →
Max Zyuzin (2002-10-22 13:12) [14]Это потому, что оно Memo ;) Используй DBMemo для отображения.
Можно Grid взять особенный... я только не в курсе какой вроде как RXDBGrid отображает... (но может вру)
Страницы: 1 вся ветка
Текущий архив: 2002.11.11;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.008 c