|
|
Регистрация | << Правила форума >> | 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 - формат интересный, с очень большими возможностями, но не компактный, ибо хранит все данные в текстовом представлении. К тому-же скорость работы с ним будет падать пропорционально объему данных. В общем не для всех задач его можно использовать. Мне вообще несколько непонятно, почему не оставить что-то одно. Либо Дельфи, либо Акцес. Такой смешанный мутант выглядит как незаконченный проект. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
|||
|
|||
Спасибо что обратили внимание на меня))
Дело в том, Access не обязательно будет использоваться, а вот проверять входные данные с самописца, строить графики и отчёт - тут уж только своя прога... Переходить на базу данных BDE или ещё что.. даже не знаю. Но выкрутился поговорив с технологами - пишем не каждый день а месяц, теперь и файлов меньше и объём... только таблиц в базе 30 а не 1... Но вопрос всёравно открыт, и хотелось бы его решить.. Вы говорите что ADOX есть? значит простопишу и должно работать?? попробую... но чёто сомневаюсь... |
#8
|
|||
|
|||
Что-то никак не пойму как вытащить ADOX в проект... где этот компанент лежит.... или лыжи не едут или я ..
Хотя проект уже отдан в эксплуатацию , все довольны, но хотелось бы знать... ))) может не вижу очевидного.... |
#9
|
||||
|
||||
Цитата:
Ну а если серьезно, то он является составной частью Windows и его нет необходимости отдельно устанавливать. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 17.02.2016 в 21:16. |
#10
|
|||
|
|||
Ткните "мордой"... ну честно не знаю как подключить.. писал ADOX в uses и просто вставлял код, не понимает делфи это всё... )))) по хелпу встроенному в D6 прошёл поиском - не находит ни слова про ADOX. Есть только ADOExpress...
|
#11
|
||||
|
||||
Вы хотите сказать, что если вы создадите консольный проект и поместите туда код который я дал выше, то у вас он не работает?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |