Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Вниз

Как создать пустую базу MS Access?   Найти похожие ветки 

 
Константинов ©   (2007-02-01 21:18) [0]

Нашел следующее:

Procedure CreateMSAccessDatabase(filename : String);
var DAO: Variant;
i:integer;
Const Engines:array[0..2] of string=("DAO.DBEngine.36", "DAO.DBEngine.35", "DAO.DBEngine");

Function CheckClass(OLEClassName:string):boolean;
var Res: HResult;
begin
Result:=CoCreateInstance(ProgIDToClassID(OLEClassName), nil, CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER, IDispatch, Res)=S_OK;
end;
begin
For i:=0 to 2 do
if CheckClass(Engines[i]) then
begin
DAO := CreateOleObject(Engines[i]);
DAO.Workspaces[0].CreateDatabase  (filename, ";LANGID=0x0409;CP=1252;COUNTRY=0", 32);
exit;
end;
Raise Exception.Create("DAO engine could not be initialized");
end;


В каком модуле прописано CoCreateInstance?

Зарание спасибо.


 
sniknik ©   (2007-02-01 22:07) [1]

вообщето в ActiveX
но использовать DAO..., гораздо проще

procedure CreateMDBBase(const BaseName: string);
var AE: Variant;
begin
 AE:= CreateOleObject("ADOX.Catalog");
 try
   AE.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+BaseName);
   AE.ActiveConnection.Close;
 finally
   AE:= Null;
 end;
end;


 
Anatoly Podgoretsky ©   (2007-02-01 23:20) [2]

CopyFile(Template, Base, Flag)


 
Константинов ©   (2007-02-01 23:42) [3]

Огромное спасибо!
Еще один небольшой вопрос:

Создаю таблицы:

  FileName := Edit1.Text;
 CreateMDBBase(FileName);
 ADOConnection1.ConnectionString := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Mode=ReadWrite|Share Deny None;Persist Security Info=False";
 ADOConnection1.Open;
 ADOCommand1.CommandText := "CREATE TABLE MapItems ( ID INTEGER NOT NULL PRIMARY KEY, ParenID INTEGER, FileName TEXT(255))";
 ADOCommand1.Execute;


Плохо знаю синтаксис команд SQL.
Тип поля ID должен быть "счетчик" как это сделать?


 
Константинов ©   (2007-02-01 23:50) [4]


> CopyFile(Template, Base, Flag)


Насколько я понял, Вы предлагаете просто скопировать существующий шаблон базы в новое место.

До этого момента я именно так и делал, но...

1. Не хочется таскать за приложением ( при переносе на другой ПК ) пустую базу.

2. Думаю, это никак не вписывается в правила "хорошего тона"  при написании программ.


 
Константинов ©   (2007-02-02 00:37) [5]

Нарыл тип Autoinc? но что-то не прокатывает в запросе :(


 
Константинов ©   (2007-02-02 00:53) [6]

Уф! Нашел... IDIDENTITY, PRIMARY KEY ( ID )



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.049 c
2-1175232123
Merry
2007-03-30 09:22
2007.04.22
Вызов процедуры


10-1131624226
Ruslanyd
2005-11-10 15:03
2007.04.22
Подключение к открытому файлу *.xls


2-1175270259
Dmitry_177
2007-03-30 19:57
2007.04.22
переменная SYSTEMTIME определить что она пустая


15-1174897756
passlight
2007-03-26 12:29
2007.04.22
Бесплатный (недорогой) компьютерный англо-русский словарь


1-1172667708
kyn66
2007-02-28 16:01
2007.04.22
Работа с архивами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский