![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание DBF файла во время работы приложения [D7, XP]
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 невозможно использовать много раз в одной папке!