|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Создать файл базы данных MS-Access
Требуется по мере перехода из месяц в месяц содавать новый файл базы данных 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 - формат интересный, с очень большими возможностями, но не компактный, ибо хранит все данные в текстовом представлении. К тому-же скорость работы с ним будет падать пропорционально объему данных. В общем не для всех задач его можно использовать. Мне вообще несколько непонятно, почему не оставить что-то одно. Либо Дельфи, либо Акцес. Такой смешанный мутант выглядит как незаконченный проект. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |