Главная страница
    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.007 c
7-9667
denis_ka
2002-01-07 00:24
2002.04.04
эмуляция нажатия CTRL-ALT-DEL


1-9544
snoup
2002-03-23 20:12
2002.04.04
Как вызвать из панели управления например аплер Модемы ?


14-9612
vopros
2002-02-21 15:55
2002.04.04
Кто посоветует как провести день рождения в Питере, либо если от места не зависит ваще как провести?


1-9529
POOKER
2002-03-23 17:16
2002.04.04
Нужна помощь


1-9431
koks
2002-03-22 09:30
2002.04.04
перерисовка MainForm





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