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

Вниз

Здравствуйте, уважаемые коллеги!   Найти похожие ветки 

 
Valentin2   (2002-03-11 11:16) [0]

Кто-нибудь создавал программно базу данных MS Access?
Пробовал с помощью функции SQLConfigDataSource, но по-моему это не то, да и библиотеки соответствующей у меня не оказалось...

И ещё вопрос: каким образом, опять же программно сжать базу MS Access?
Благодарен заранее за любое внимание к моей проблеме.


 
sniknik   (2002-03-11 11:23) [1]

через ADOX
if not FileExists(sBase) then begin
AdoEngine:= CreateOleObject("ADOX.Catalog");
AdoEngine.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+
sBase+";Jet OLEDB:Engine Type=5;");
AdoEngine.ActiveConnection.Close;
AdoEngine:= Null;
end;

через DAO
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;

а вот с паковкой туго вроде она сама разбырается что и как ей паковать и других не допускает к этому делу.


 
Valentin2   (2002-03-11 11:41) [2]

sniknik! Большое Вам спасибо!!! базу удалось создать с первой попытки.
Но вот с паковкой всё-таки проблема остаётся, и её всё-таки можно сжимать программно, ведь ODBC это делает именно так, но как?..


 
sniknik   (2002-03-11 11:58) [3]

Найдеш как зашли на мыло, чтоб не пропустить. Мне не удалось.


 
Valentin2   (2002-03-11 12:06) [4]

Хорошо...


 
Valentin2   (2002-03-11 12:21) [5]

У меня в папке "C:\Program Files\Common Files\SYSTEM\ADO" есть Help Ado210.chm, и в нём есть пример функции CompactDatabase на Visual Basic-е, но я в нём пока не разобрался. Может, ты попробуешь?


 
Valentin2   (2002-03-11 12:43) [6]

У меня заработало, но я программирую на Bilder-е, и как это будет на Delphi, не знаю, но думаю, разобраться можно:

Variant je=CreateOleObject("JRO.JetEngine");

je.OleFunction("CompactDatabase","Provider=Microsoft.Jet.OLEDB.4.0;"
"Data Source=С:\\NonCompressed.mdb",
"Provider=Microsoft.Jet.OLEDB.4.0;"
"Data Source=C:\\Compressed.mdb;"
"Jet OLEDB:Encrypt Database=True");



 
sniknik   (2002-03-11 12:50) [7]

А точно работает? У меня насколько помню проблемы были, вроде отрабатывает ошибок нет а база неупакована. Вот я и решил что только она сама изнутри может.


 
Valentin2   (2002-03-11 13:16) [8]

Я пробовал на базе объёмом 3.8 Mb. После сжатия получилась новая база с другим именем в том же каталоге размером 1.7 Mb, и никаких проблем!


 
sevylor   (2002-03-12 08:01) [9]

uses ADOX_TLB, ADODB, ComObj, SysUtils, JRO_TLB;

function CompactDB(dbName:string):string;
const
CConnStr:WideString ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
var
JetEng : JetEngine;
s:string;
begin
s:=ChangeFileExt(dbName,".bak");
if FileExists(s) then DeleteFile(s);
RenameFile(dbName,s);
// Создать экземпляр объекта JetEngine
JetEng := CoJetEngine.Create;
JetEng.CompactDatabase(CConnStr+s,CConnStr+dbName);
JetEng:=nil;
end;



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

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

Наверх





Память: 0.46 MB
Время: 0.112 c
1-9522
Foxer
2002-03-22 20:38
2002.04.04
Еще один вопрос


14-9630
Lovers
2002-02-20 21:01
2002.04.04
Определение кол-ва процессорных тактов выполняемых заданным кодом


1-9499
oomneeq
2002-03-21 16:14
2002.04.04
Хм, как бы с этим побороться - Library path etc.


1-9516
Sound
2002-03-23 01:46
2002.04.04
КТО НИБУДЬ!!! ВОПРОС!!!


1-9477
Serd_hhc
2002-03-25 11:50
2002.04.04
Как проиграть MP3 - файл ?





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