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

Вниз

Как создать базу данных Access через ADO?   Найти похожие ветки 

 
ИМХО ©   (2004-04-22 21:18) [0]

Нужно создать пустую базу Access с текстовым полем. Уже запарился, но не получается.
Делаю так:

const
 ConnStr =
   "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False";
var
 ADOConnection1: TADOConnection;
 Create_Str: string;
begin
 Create_Str := "CREATE TABLE  (First char(255))";
 ADOConnection1 := TADOConnection.Create(nil);
 try
   ADOConnection1.LoginPrompt := False;
   ADOConnection1.Provider := "Microsoft.Jet.OLEDB.4.0";
   
   ADOConnection1.ConnectionString := Format(ConnStr, ["C:\1\temp.mdb"]);
   ADOConnection1.Execute(Create_Str);

 finally
   ADOConnection1.Free;
 end;

Как я понял, он пытается сначала открыть "C:\1\temp.mdb", файла такого не находит и орет дурным голосом об этом :(


 
Nikolay M. ©   (2004-04-22 22:23) [1]

Яндекс, "Как создать базу данных Access":
"Результат поиска: страниц — 2581, сайтов — не менее 894".
Неужели ни один из "не менее 894" сайтов не помог?


 
ИМХО ©   (2004-04-22 22:27) [2]

Дык там то не для Delphi, то не через ADO, то откровенно корявые советы.

sniknik нужен!


 
ИМХО ©   (2004-04-22 22:30) [3]

Вот, к примеру, первые несколько результатов (из Яндекса):

procedure CreateMSAccessDB(filename : String);
var
 DBEngine, Workspace: Variant;
const
 {Important to use the following constant as is}
 dbLangGeneral = ";LANGID=0x0409;CP=1252;COUNTRY=0";
 dbVersion30 = 32;
begin
 DBEngine := CreateOleObject("DAO.DBEngine");
 {DBEngine := CreateOleObject("DAO.DBEngine.35"); For DAO 3.5}
 Workspace := DBEngine.Workspaces[0];
 try
   Workspace.CreateDatabase(filename, dbLangGeneral, dbVersion30);
 except on EOleException do
   ShowMessage("Database already exists");
 end;
end;

Во-первых, это DAO.
Во-вторых, это бред, код не рабочий, у Шкульника пример для DAO лучше.


 
Anatoly Podgoretsky ©   (2004-04-22 22:40) [4]

Во первых у тебя тоже бред, твой пример про создание таблицы, а другой про создания базы.


 
sniknik ©   (2004-04-22 22:42) [5]

сто раз уже ложил

function TDMod.CreateMDBBase(const BaseName: string): boolean;
var AdoEngine: Variant;
begin
 result:= false;
 if Length(BaseName)=0 then begin
   DoIfError("Не определено имя базы");
   exit;
 end;
 try
   try
     AdoEngine:= CreateOleObject("ADOX.Catalog");
     AdoEngine.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+GetMdbName(BaseName)+";Jet OLEDB:Engine Type=5;");
     AdoEngine.ActiveConnection.Close;
     result:= true;
   except
     on E: Exception do DoIfError(E.Message);
   end;
 finally
   AdoEngine:= Null;
 end;
end;

непонятное (возможно)
GetMdbName - функция своя делает из пустого имени имя с путем и расширением (просто у меня по разному может приходить), задая явно.
DoIfError тоже собственная функция, ведел лог, можеш просто выкинуть или чтото аналогичное.

DAO лутше не исопользовать DAO конфликтует с Jet в какихто случаях (на мелкософте есть описание и патч, но зачем лишние проблемы?)



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

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

Наверх





Память: 0.47 MB
Время: 0.03 c
1-1082984488
Domkrat
2004-04-26 17:01
2004.05.16
Запуск программы с ключами


3-1082107204
Litva
2004-04-16 13:20
2004.05.16
DBGRID...


14-1082742092
Sniper-Max
2004-04-23 21:41
2004.05.16
Одновременный вызов OpenDialog1.Execute и Append(f);


3-1081970454
3APA3A
2004-04-14 23:20
2004.05.16
База не меняет размер...


1-1083292783
Sun bittern
2004-04-30 06:39
2004.05.16
Инспектор объектов





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