|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
DBF - программно...
Уже до боли всеми измусоленная тема, извините конечно меня бесталкового, но сил больше нет ....
необходимо прорамно создать DBF (DBASE III или DBASE IV с кодировкой русских символов – OEM 866) фаил который бы открывался, программой для просмотра (выложил сюда: https://docs.google.com/leaf?id=0B1a...ODgzZjU0&hl=en на всякий пожарный) Что пробывал: 1. это: http://www.delphisources.ru/pages/fa...te_table4.html 2. это: Код:
begin with TTable.Create(nil) do begin DatabaseName := 'c:\'; TableName := 'test.dbf'; TableType := ttDbase; with FieldDefs do begin Add('FIO', ftString,20,false); Add('OTD', ftString,30,false); end; CreateTable; end; end; Не чего не подходит Гугл дает тока подобные варианты решения проблеммы.... Пишу на Delphi 2010 |
#2
|
||||
|
||||
не смог найти программу. на угад могу посоветовать:
Код:
TableLevel:=3; Пишу программы за еду. __________________ |
#3
|
||||
|
||||
Не понял куда чего?
|
#4
|
||||
|
||||
Код:
begin with TTable.Create(nil) do begin DatabaseName := 'c:\'; TableName := 'test.dbf'; TableType := ttDbase; TableLevel := 3; with FieldDefs do begin Add('FIO', ftString,20,false); Add('OTD', ftString,30,false); end; CreateTable; end; end; Пишу программы за еду. __________________ |
#5
|
||||
|
||||
Фаил создается все ок спасибо, но вместо руских букв какие-то кракозябры тоесть как я понимаю нужна с кодировка русских символов – OEM 866 как добавить эту кодировку?
вот код который создает фаил и перебрасывает данные из Stringrid в него: Код:
var NumF : TFieldDef; i,j:integer; begin with TTable.Create(nil) do begin DatabaseName := 'c:\'; TableName := 'test.dbf'; TableType := ttDbase; TableLevel := 3; with FieldDefs do begin Add('FIO', ftString,40,false); Add('ACCOUNT', ftString,20,false); // Add('SUMMA', ftBlob,0,false); NumF:=FieldDefs.AddFieldDef(); NumF.Name:='SUMMA'; NumF.DataType:=ftBCD; NumF.Size:=2; NumF.Precision:=17; end; CreateTable; end; TBL1.DatabaseName:='c:\'; TBL1.TableName:='test.dbf'; TBL1.Active:=true; for i:=0 to StringGrid1.RowCount-1 do begin TBL1.Append; for j:=0 to StringGrid1.ColCount-1 do TBL1.Fields[j].AsString:=StringGrid1.Cells[j,i]; TBL1.Post; end; TBL1.FlushBuffers; TBL1.Active:=false; end; |
#6
|
||||
|
||||
в bde администраторе у нативного драйвера dbf lang установить в dbase rus cp866
Пишу программы за еду. __________________ |
#7
|
||||
|
||||
Хм, заработало, но прогой будут пользоваться как минимум два человека(не считая меня), как быть, может кодировку можно устанавливать программно...?
|
#8
|
||||
|
||||
эти настройки сидят в "c:\Program Files\Common Files\Borland Shared\BDE\idapi32.cfg"
Пишу программы за еду. __________________ |
#9
|
||||
|
||||
А если у пользователей нет, Delphi? Там тока голая винда, 1с, MSOffice и пару бух прог. Не ставить же каждому BDE и не менять кодировку? А вдруг руковотство скажет не двоим а десятерым поставить тогда как?
|
#10
|
||||
|
||||
Цитата:
Цитата:
Пишу программы за еду. __________________ |
#11
|
||||
|
||||
Цитата:
Смотрите в сторону dbGo - на TADO... вполне можете соединиться с базами dbf и не надо ничего устанавливать - поддерживается на уровне Винды. |
#12
|
||||
|
||||
Есть другие предложения? Жду примеров, нормально работающие примеры тока с TTable .....
|
#13
|
|||
|
|||
Цитата:
Есть просто отдельные инсталляшки BDE-5. Например здесь: http://flexiobjdb.narod.ru/download/dnload.htm Цитата:
|