![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Новая база [D7, MSSQL]
WhiteCat © (2006-07-22 21:53:00)Здравствуйте!
Подскажите, пожалуйста, как создать новую Access базу с несколькими таблицами из программы?
Barsky (2006-07-24 12:58:00) [1]Когда-то мне ответили на данный вопрос так:
Если таблицы не создавать, т.е. пустую базу и для русского языка, то можно так:
uses Dialogs, ComObj, ActiveX;
function CreateDatabase(DatabaseName: string): boolean;
var
DBEngine, Workspace: Variant;
const
dbLangGeneral = ';LANGID=0x0409;CP=1252;COUNTRY=0';
dbLangCyrillic = ';LANGID=0x0419;CP=1251;COUNTRY=0';
dbVersion20 = 32;
dbVersion30 = 64;
begin
result := false;
try
try
DBEngine := CreateOleObject('DAO.DBEngine.36');
except
try {For DAO 3.5}
DBEngine := CreateOleObject('DAO.DBEngine.35');
except
raise;
end;
end;
Workspace := DBEngine.Workspaces[0];
try
Workspace.CreateDatabase(
DatabaseName,
dbLangCyrillic + ';CollatingOrder=1049',
dbVersion30);
result := true;
except on e0: EOleException do
ShowMessage(e0.Message);
end;
except on e1: EOleException do
ShowMessage(e1.Message);
end;
end;
begin
CoInitialize(nil);
if CreateDatabase('Base777') then ShowMessage('OK')
else ShowMessage('Error')
end.
WhiteCat (2006-07-23 22:17:00) [2]to Anatoly
Ok! Подскажите как мне создать базу(как файл *.mdb) из Delphi и приконектится к ней. Создание таблиц я так понимаю через ADOCommand отработает.
Anatoly Podgoretsky (2006-07-23 11:56:00) [3]WhiteCat (22.07.06 21:53)
Это два разных вопроса - создание базы и создание таблиц
первое CREATE DATABASE
второе CREATE TABLE
Anatoly Podgoretsky (2006-07-23 11:55:00) [4]Fay © (23.07.06 09:15) [5]
А хрен его знает.
Fay (2006-07-23 09:15:00) [5]А каким боком тут MSSQL ?
Palladin (2006-07-22 23:47:00) [6]
> Что тоже в теории очень мало вероятно. :)
Извиняюсь, на практике очень мало вероятно...
Palladin (2006-07-22 23:44:00) [7]Не сказать что не правильно, но хитро это точно. Главное - вполне рабочий способ. В теории, способ сломается тогда, когда полностью пропадет обратная совместимость Jet, установленной на клиенте и с которой создана изначальная БД. Что тоже в теории очень мало вероятно. :)
WhiteCat (2006-07-22 23:20:00) [8]Другой вопрос:
правильно ли будет:
если я создам пустую базу в Access, буду ее копировать в новый файл и подключаться к ней?
DiamondShark (2006-07-22 22:28:00) [9]Импортировать библиотеку типов DAO, называется она как-то вроде
Microsoft DAO X.X Object Library
потом что-то вроде такого:
var
eng: DBEngine;
db: Database;
td: TableDef;
f: Field;
begin
eng := CoDBEngine.Create();
db := eng.CreateDatabase('c:\mydb.mdb', ';LANGID=0x0419;CP=1251;COUNTRY=0', dbVersion30);
td := db.CreateTableDef('MyTable', EmptyParam, EmptyParam, EmptyParam);
f := td.CreateField('Id', dbLong, 4);
td.Fields.Append(f);
f := td.CreateField('Name', dbText, 50);
td.Fields.Append(f);
db.TableDefs.Append(td);
db.Close();
end;