Главная страница
    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.46 MB
Время: 0.04 c
4-1080290585
Абульфаз Ильчибей
2004-03-26 11:43
2004.05.16
Странная функция MoveFileEx.


11-1068963605
Ciber SLasH
2003-11-16 09:20
2004.05.16
Какие есть компоненты для загрузки JPG из ресурсов


1-1083061737
IceMaster
2004-04-27 14:28
2004.05.16
Memo


8-1077019218
Qwer
2004-02-17 15:00
2004.05.16
Слои


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