Автор: de1phi | 18.12.2007 в 10:22 | Рубрики: Базы данных

// Using ADOX:

uses
ComObj;

// You can with ADOX (Microsoft ADO Extensions for DDL and Security),

function CreateAccessDatabase(FileName: string): string;
var
cat: OLEVariant;
begin
Result := ”;
try
cat := CreateOleObject(’ADOX.Catalog’);
cat.Create(’Provider=Microsoft.Jet.OLEDB.4.0;Data Source=’ + FileName + ‘;’);
cat := NULL;
except
on e: Exception do Result := e.message;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
CreateAccessDatabase(’c:\Testdb.mdb’);
end;

Говорит мол невозможно открыть файл. И на самом деле еще виден файл блокировки Access. Как закрыть базу так чтоб этот файл исчез и я мог сохранить.

Ответ:

session.close

Программирование под Майкрософт.Net - это как секс с представителем своего пола - пока этим не займешься, сама мысль об этом кажется извращением. После того, как этим займешься, понимаешь, что наверное что-то в этом есть, но друзьям признаться стыдно.

ADO

Если у Вас Delphi 5 Enterprise или Delphi 5 Professional с ADO Express, то Вы можете использовать компонент ADOTable и в его свойстве ConnectionString настроить (build) подключение как базе данных MS Access. Например:
Читать полностью…

Автор: de1phi | в 10:22 | Рубрики: Базы данных

// Читаем файл (любой версии)
// Проверяем что это ACCESS MDB
// Нужны компаненты:
// TADOtable,TDataSource,TOpenDialog,TDBGrid,TBitBtn.
unit uMain;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls, Buttons;
Читать полностью…

procedure CreateMSAccessDB(filename : String);
var
DBEngine, Workspace: Variant;
const
{Important to use the following constant as is}
dbLangGeneral = ‘;LANGID=0×0409;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;