Главная страница
    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.45 MB
Время: 0.046 c
2-1175698566
Shand
2007-04-04 18:56
2007.04.22
Строки


15-1174499240
Kerk
2007-03-21 20:47
2007.04.22
Summer of Code 2007


2-1175197234
GRANWOLF
2007-03-29 23:40
2007.04.22
библиотеки


2-1175142816
O.O
2007-03-29 08:33
2007.04.22
Количество сгруппированых строк


6-1153968464
FFx01
2006-07-27 06:47
2007.04.22
Не посылается письмо размером больше 6 кб





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский