Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.02.2016, 16:24
-=#PupaJr#=- -=#PupaJr#=- вне форума
Новичок
 
Регистрация: 17.08.2010
Сообщения: 69
Репутация: 518
По умолчанию Создать файл базы данных MS-Access

Требуется по мере перехода из месяц в месяц содавать новый файл базы данных Access MS-Jet4.0.
Внутри базы создать таблицу не сложно, а вот сам файл???
Вышел из положения пока так:
Создал сначала базу с таблицей пустой, удалил таблицу, остался "скелет".
Этот скелет переименовал, и этот "скелет" копирую с переименованием - типо создаю новую базу при этом только вставляю туда нужные таблицы ))))
Но это как-то не правильно.... В случае потери этого образца то всё встаёт...
Делфи 6, Access 2003.MS-Jet4.0.
Подскажите ))
Ответить с цитированием
  #2  
Старый 02.02.2016, 19:27
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Код:
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  
Старый 04.02.2016, 17:01
-=#PupaJr#=- -=#PupaJr#=- вне форума
Новичок
 
Регистрация: 17.08.2010
Сообщения: 69
Репутация: 518
По умолчанию

Спасибо, но у Вас используется доп. библиотека ADOX, у меня её нет, и нет желания нагружать стандартную установку Delphi, так как большинство задач могут решаться стандартными библиотеками, которые есть всегда и не запутаешся в их версиях и совместимостях.
И ещё вопрос к этому - файл большой - порядка 3.2Мб, даже пустой - его можно сжать? или использовать другой тип Provider_a???
Задача очень простая, хранить таблицу с число-символьными записями и чтобы открывалась и редактировалась/искалась/выбиралась стандартным Access_ом.?
Ответить с цитированием
  #4  
Старый 04.02.2016, 17:26
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

AdoX - это расширение технологии Ado, которая интегрирована в Windows еще кажется с Windows 95, так что должно работать на любом из современных компьютеров, даже без установленного Ms Offiice.
Что касается другого хранилища, то вполне можно хранить в xml,txt,xls и т.д. Все эти форматы поддерживаются Акцесом и вы можете не импортировать их в акцес, а сделать на них ссылку из Акцеса. Обращатся к этим данным средствами Акцес можно как и к обычной таблице, но это несколько странная цепочка получается Дельфи - Адо - Акцес - Адо - Таблица. Проще исключить из этой цепочки Акцес - Адо и обращатся сразу средствами Адо к любому из этих форматов. Просто меняется немного строка подключения в Дельфи и вы получаете прямой доступ к таблице.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 04.02.2016 в 17:29.
Ответить с цитированием
  #5  
Старый 08.02.2016, 14:51
-=#PupaJr#=- -=#PupaJr#=- вне форума
Новичок
 
Регистрация: 17.08.2010
Сообщения: 69
Репутация: 518
По умолчанию

ADOX нет во вкладках DELPHI6 Entrprise ((((
Access нужен как стандарт ДЕ-ФАКТО, в котором можно сделать ВСЁ и со ВСЕМ. С другими форматами сложно делать выборку/сортировку/фильтрацию.
Программа нужна лишь для обработки файла данных самописца с записью их в MDB, подготовки отчета с графиком.
База нужна только для архивации данных техпроцесса, в принципе XML рассматривал, но не умею его "делать", да и как его потом использовать.. ??
Ответить с цитированием
  #6  
Старый 08.02.2016, 19:24
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

А Оле,Jpg,Png вы видите во вкладках? Существует туча невизуальных компонентов и библиотек, которых нет и никогда не будет во вкладках. предложенный мной вариант, это не сторонняя библиотека, а все тот-же Adо, просто в визульную часть по какой-то причине не стали выносить эти функции.
XML - формат интересный, с очень большими возможностями, но не компактный, ибо хранит все данные в текстовом представлении. К тому-же скорость работы с ним будет падать пропорционально объему данных. В общем не для всех задач его можно использовать.
Мне вообще несколько непонятно, почему не оставить что-то одно. Либо Дельфи, либо Акцес. Такой смешанный мутант выглядит как незаконченный проект.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:27.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter