![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Требуется по мере перехода из месяц в месяц содавать новый файл базы данных Access MS-Jet4.0.
Внутри базы создать таблицу не сложно, а вот сам файл??? Вышел из положения пока так: Создал сначала базу с таблицей пустой, удалил таблицу, остался "скелет". Этот скелет переименовал, и этот "скелет" копирую с переименованием - типо создаю новую базу при этом только вставляю туда нужные таблицы )))) Но это как-то не правильно.... В случае потери этого образца то всё встаёт...Делфи 6, Access 2003.MS-Jet4.0. Подскажите )) |
|
#2
|
||||
|
||||
|
Код:
program Project8;
{$APPTYPE CONSOLE}
uses
SysUtils, Variants, ComObj, ActiveX;
Const
adKeyPrimary = 1;
adKeyForeign = 2;
adKeyUnique = 3;
adInteger = 3;
adDate = 7;
adVarWChar = 202;
Var
Mdb,Tbl,Idx: Variant;
begin
Coinitialize(nil);
Mdb := CreateOleObject('ADOX.Catalog');
Mdb.Create(Format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s',['g:\1\DB1.mdb']));
Tbl := CreateOleObject('ADOX.Table');
Tbl.Name := 'Table1';
Tbl.ParentCatalog := Mdb;
Tbl.Columns.Append('intField', adInteger);
Tbl.Columns.Append('txtField', adVarWChar, 50);
Tbl.Columns.Append('dateField', adDate);
Mdb.Tables.Append(Tbl);
Idx := CreateOleObject('ADOX.Key');
Idx.Name := 'PrimaryKey';
Idx.Type := adKeyPrimary;
Idx.Columns.Append('intField');
Mdb.Tables[Tbl.Name].Keys.Append(Idx);
Idx := Unassigned;
Tbl := Unassigned;
Mdb := Unassigned;
CoUninitialize;
end. |
|
#3
|
|||
|
|||
|
Спасибо, но у Вас используется доп. библиотека ADOX, у меня её нет, и нет желания нагружать стандартную установку Delphi, так как большинство задач могут решаться стандартными библиотеками, которые есть всегда и не запутаешся в их версиях и совместимостях.
И ещё вопрос к этому - файл большой - порядка 3.2Мб, даже пустой - его можно сжать? или использовать другой тип Provider_a??? Задача очень простая, хранить таблицу с число-символьными записями и чтобы открывалась и редактировалась/искалась/выбиралась стандартным Access_ом.? ![]() |
|
#4
|
||||
|
||||
|
AdoX - это расширение технологии Ado, которая интегрирована в Windows еще кажется с Windows 95, так что должно работать на любом из современных компьютеров, даже без установленного Ms Offiice.
Что касается другого хранилища, то вполне можно хранить в xml,txt,xls и т.д. Все эти форматы поддерживаются Акцесом и вы можете не импортировать их в акцес, а сделать на них ссылку из Акцеса. Обращатся к этим данным средствами Акцес можно как и к обычной таблице, но это несколько странная цепочка получается Дельфи - Адо - Акцес - Адо - Таблица. Проще исключить из этой цепочки Акцес - Адо и обращатся сразу средствами Адо к любому из этих форматов. Просто меняется немного строка подключения в Дельфи и вы получаете прямой доступ к таблице. Последний раз редактировалось Страдалецъ, 04.02.2016 в 17:29. |
|
#5
|
|||
|
|||
|
ADOX нет во вкладках DELPHI6 Entrprise ((((
Access нужен как стандарт ДЕ-ФАКТО, в котором можно сделать ВСЁ и со ВСЕМ. С другими форматами сложно делать выборку/сортировку/фильтрацию. Программа нужна лишь для обработки файла данных самописца с записью их в MDB, подготовки отчета с графиком. База нужна только для архивации данных техпроцесса, в принципе XML рассматривал, но не умею его "делать", да и как его потом использовать.. ?? ![]() |
|
#6
|
||||
|
||||
|
А Оле,Jpg,Png вы видите во вкладках? Существует туча невизуальных компонентов и библиотек, которых нет и никогда не будет во вкладках. предложенный мной вариант, это не сторонняя библиотека, а все тот-же Adо, просто в визульную часть по какой-то причине не стали выносить эти функции.
XML - формат интересный, с очень большими возможностями, но не компактный, ибо хранит все данные в текстовом представлении. К тому-же скорость работы с ним будет падать пропорционально объему данных. В общем не для всех задач его можно использовать. Мне вообще несколько непонятно, почему не оставить что-то одно. Либо Дельфи, либо Акцес. Такой смешанный мутант выглядит как незаконченный проект. |