Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.11.2010, 11:13
Аватар для Dead_Gigabit
Dead_Gigabit Dead_Gigabit вне форума
Начинающий
 
Регистрация: 20.10.2009
Адрес: Там где холодно и сыро.... брр
Сообщения: 135
Версия Delphi: Delphi XE
Репутация: 10
Вопрос 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  
Старый 12.11.2010, 11:42
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

не смог найти программу. на угад могу посоветовать:
Код:
TableLevel:=3;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 12.11.2010, 11:54
Аватар для Dead_Gigabit
Dead_Gigabit Dead_Gigabit вне форума
Начинающий
 
Регистрация: 20.10.2009
Адрес: Там где холодно и сыро.... брр
Сообщения: 135
Версия Delphi: Delphi XE
Репутация: 10
По умолчанию

Не понял куда чего?
Ответить с цитированием
  #4  
Старый 12.11.2010, 11:57
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
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  
Старый 12.11.2010, 18:16
Аватар для Dead_Gigabit
Dead_Gigabit Dead_Gigabit вне форума
Начинающий
 
Регистрация: 20.10.2009
Адрес: Там где холодно и сыро.... брр
Сообщения: 135
Версия Delphi: Delphi XE
Репутация: 10
По умолчанию

Фаил создается все ок спасибо, но вместо руских букв какие-то кракозябры тоесть как я понимаю нужна с кодировка русских символов – 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  
Старый 12.11.2010, 18:20
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

в bde администраторе у нативного драйвера dbf lang установить в dbase rus cp866
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 13.11.2010, 08:57
Аватар для Dead_Gigabit
Dead_Gigabit Dead_Gigabit вне форума
Начинающий
 
Регистрация: 20.10.2009
Адрес: Там где холодно и сыро.... брр
Сообщения: 135
Версия Delphi: Delphi XE
Репутация: 10
По умолчанию

Хм, заработало, но прогой будут пользоваться как минимум два человека(не считая меня), как быть, может кодировку можно устанавливать программно...?
Ответить с цитированием
  #8  
Старый 13.11.2010, 09:29
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

эти настройки сидят в "c:\Program Files\Common Files\Borland Shared\BDE\idapi32.cfg"
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #9  
Старый 13.11.2010, 09:33
Аватар для Dead_Gigabit
Dead_Gigabit Dead_Gigabit вне форума
Начинающий
 
Регистрация: 20.10.2009
Адрес: Там где холодно и сыро.... брр
Сообщения: 135
Версия Delphi: Delphi XE
Репутация: 10
По умолчанию

А если у пользователей нет, Delphi? Там тока голая винда, 1с, MSOffice и пару бух прог. Не ставить же каждому BDE и не менять кодировку? А вдруг руковотство скажет не двоим а десятерым поставить тогда как?
Ответить с цитированием
  #10  
Старый 13.11.2010, 11:11
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от Dead_Gigabit
Не ставить же каждому BDE
сам начал TTable использовать:
Цитата:
TTable encapsulates a database table.
Unit
DBTables
Description
Use TTable to access data in a single database table using the Borland Database Engine (BDE)
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #11  
Старый 13.11.2010, 12:49
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Цитата:
Не ставить же каждому BDE
BDE устарела уже лет 10 назад и для доступа к DBF (DBASE III или DBASE IV) есть еще несколько средств.
Смотрите в сторону dbGo - на TADO... вполне можете соединиться с базами dbf и не надо ничего устанавливать - поддерживается на уровне Винды.
Ответить с цитированием
  #12  
Старый 13.11.2010, 15:17
Аватар для Dead_Gigabit
Dead_Gigabit Dead_Gigabit вне форума
Начинающий
 
Регистрация: 20.10.2009
Адрес: Там где холодно и сыро.... брр
Сообщения: 135
Версия Delphi: Delphi XE
Репутация: 10
По умолчанию

Есть другие предложения? Жду примеров, нормально работающие примеры тока с TTable .....
Ответить с цитированием
  #13  
Старый 13.11.2010, 21:48
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Цитата:
Сообщение от Dead_Gigabit
А если у пользователей нет, Delphi? ...
Для установки BDE-5 - Delphi не обязателен.
Есть просто отдельные инсталляшки BDE-5.
Например здесь:
http://flexiobjdb.narod.ru/download/dnload.htm


Цитата:
А вдруг руковотство скажет не двоим а десятерым поставить тогда как?
Тогда надо взять InstallShield, потратить 10 минут и сделать нормальную инсталляшку своей программы+BDE-5 (в одном флаконе).
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:51.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter