Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание DBF файла во время работы приложения [D7, XP]


Страницы:   1 2 3

KillaTank ©   (2009-02-12 23:43:00) 

Люди срочно нужно узнать код создания DBF файла во время работы приложения в delphi!


KillaTank   (2009-02-14 23:25:00) [21]

У меня вся программа ориентированна на dbf, и переписывать на db сложно.. как раз я там пытался, плюнул переписал все заново. Все работает, кроме создания новой dbf с новым именем!
И сюда же еще вопрос! Я использовал стандартное поле DBGrid для отображения таблици, но у меня все поля большие и пользователю, чтобы просмотреть его надо крутить очень долго. Как можно осуществить следующее: для просмотра данных пользователь счелкает по полю с нужной информацией, открывается новая форма где будет отображена данная информация? Заранее спасибо!


Сергей М.   (2009-02-14 23:18:00) [22]

И, кстати. чем не угодило "db" ?


Сергей М.   (2009-02-14 23:17:00) [23]


> DBF - это расширение таблицы


У таблицы нет расширения.
Расширение есть у имени файла, который имея это расширение вовсе не обязан быть "таблицей".


Сергей М.   (2009-02-14 23:14:00) [24]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1233487037&n=18

Ты все еще дерево мусолишь ?


Сергей М.   (2009-02-14 23:11:00) [25]

В чем же ?


KillaTank   (2009-02-14 23:11:00) [26]

DBF - это расширение таблицы, которую можно создать через VPF (Visual Fox Pro).


Anatoly Podgoretsky   (2009-02-14 23:09:00) [27]

Что такое DBF?


KillaTank   (2009-02-14 23:04:00) [28]


> Сергей М. ©   (14.02.09 22:59) [17]
>
>
> > KillaTank ©   (14.02.09 22:46) [13]
>
>
>
> > ой да забыл
>
>
> Ну так жми скорей !

Я выше написал в чем проблема.


Сергей М.   (2009-02-14 22:59:00) [29]


> KillaTank ©   (14.02.09 22:46) [13]



> ой да забыл


Ну так жми скорей !


KillaTank   (2009-02-14 22:58:00) [30]

Ухх спасибо создает! Но только DB а не dbf! Мне нужно dbf? Как изменить?


Amoeba   (2009-02-14 22:58:00) [31]

А если так?
if CreateTable(InputString, MyTabStruct, '') then


Amoeba   (2009-02-14 22:55:00) [32]

А если так?
if CreateTable(InputString, MyTabStruct, '') then


KillaTank   (2009-02-14 22:46:00) [33]

ой да забыл(
Вообщем все сделал появляется окно ввожу имя.. но сохраняет со старым! begin

 InputString:= InputBox('Input Box', 'Имя таблицы', 'Введите имя таблицы');

 if CreateTable('"MYTAB1.DBF"', MyTabStruct, '') then
   // выполняем дальнейшие операции
 else
end;


Сергей М.   (2009-02-14 22:28:00) [34]

Чего "описать" ?
Ты F1 жал ?


KillaTank   (2009-02-14 22:24:00) [35]

И как это описать? простите стыдно но не знаю((


Сергей М.   (2009-02-14 22:19:00) [36]

путь к папке с текущей выполняемой программой - ExtractFilePath(Application.ExeName)

Ввод строки - InputBox


KillaTank   (2009-02-14 21:49:00) [37]

Ну код ессесно разбирал, надо же знать на будующее как делать! Но некоторые моменты не понятны!как сделать так, чтобы файл создавался в папке в месте с программой и пользователь сам давал название таблице, а то стандартное MYTAB невозможно использовать много раз в одной папке!


Сергей М.   (2009-02-14 21:44:00) [38]


> код нашел


Найти мало - надо еще узнать)


KillaTank   (2009-02-14 21:42:00) [39]

И сюда же еще вопрос! Я использовал стандартное поле DBGrid для отображения таблици, но у меня все поля большие и пользователю, чтобы просмотреть его надо крутить очень долго. Как можно осуществить следующее: для просмотра данных пользователь счелкает по полю с нужной информацией, открывается новая форма где будет отображена данная информация? Заранее спасибо!


KillaTank   (2009-02-14 21:37:00) [40]

Спасибо большое, но код нашел:
...
const
 CreateTab = 'CREATE TABLE ';
 IDXTab = 'PRIMARY KEY ';
 MyTabStruct = 'IDX_TAB DECIMAL(6,0), '
   + 'DATE_ DATE, '
   + 'FLD_1 CHARACTER(20), '
   + 'FLD_2 DECIMAL(7, 2), '
   + 'FLD_3 BOOLEAN, '
   + 'FLD_4 BLOB(1, 1), '
   + 'FLD_5 BLOB(1, 2), '
   + 'FLD_6 BLOB(1, 3), '
   + 'FLD_7 BLOB(1, 4), '
   + 'FLD_8 BLOB(1, 5) ';
 ...

function TForm1.CreateTable(TabName, TabStruct, TabIDX: string): boolean;
var
 qyTable: TQuery;
begin
 result := true;
 qyTable := TQuery.Create(Self);
 with qyTable do
   try
     try
       SQL.Clear;
       SQL.Add(CreateTab + TabName + '(' + TabStruct + TabIDX + ')');
       Prepare;
       ExecSQL;    // ExecSQL, а не Open. Иначе ...
     except
       // Обработка ошибок открытия таблицы
       Exception.Create('Ошибка открытия таблицы');
       result := false;
     end;
   finally
     Close;
   end;
end;

// создание таблицы без индекса
procedure TForm1.Button1Click(Sender: TObject);
begin
 if CreateTable('"MYTAB1.DBF"', MyTabStruct, '') then
   ...    // выполняем дальнейшие операции
 else
   ...
end;

// создание таблицы с индексом
procedure TForm1.Button2Click(Sender: TObject);
begin
 if CreateTable('"MYTAB2.DBF"', MyTabStruct, IDXTab + ' (IDX_TAB)') then
   ...    // выполняем дальнейшие операции
 else
   ...
end;


Единственное что  не понял, как сделать так, чтобы файл создавался в папке в месте с программой и пользователь сам давал название таблице, а то стандартное MYTAB невозможно использовать много раз в одной папке!


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо