Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.24;
Скачать: CL | DM;

Вниз

Новая база   Найти похожие ветки 

 
WhiteCat   (2006-07-22 21:53) [0]

Здравствуйте!
Подскажите, пожалуйста, как создать новую Access базу с несколькими таблицами из программы?


 
DiamondShark ©   (2006-07-22 22:28) [1]

Импортировать библиотеку типов 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;


 
WhiteCat   (2006-07-22 23:20) [2]

Другой вопрос:
правильно ли будет:
если я создам пустую базу в Access, буду ее копировать в новый файл и подключаться к ней?


 
Palladin ©   (2006-07-22 23:44) [3]

Не сказать что не правильно, но хитро это точно. Главное - вполне рабочий способ. В теории, способ сломается тогда, когда полностью пропадет обратная совместимость Jet, установленной на клиенте и с которой создана изначальная БД. Что тоже в теории очень мало вероятно. :)


 
Palladin ©   (2006-07-22 23:47) [4]


> Что тоже в теории очень мало вероятно. :)

Извиняюсь, на практике очень мало вероятно...


 
Fay ©   (2006-07-23 09:15) [5]

А каким боком тут MSSQL ?


 
Anatoly Podgoretsky ©   (2006-07-23 11:55) [6]

Fay ©   (23.07.06 09:15) [5]
А хрен его знает.


 
Anatoly Podgoretsky ©   (2006-07-23 11:56) [7]

WhiteCat   (22.07.06 21:53)  
Это два разных вопроса - создание базы и создание таблиц
первое CREATE DATABASE
второе CREATE TABLE


 
WhiteCat   (2006-07-23 22:17) [8]

to Anatoly
Ok! Подскажите как мне создать базу(как файл *.mdb) из Delphi и приконектится к ней. Создание таблиц я так понимаю через ADOCommand отработает.


 
Barsky ©   (2006-07-24 12:58) [9]

Когда-то мне ответили на данный вопрос так:

Если таблицы не создавать, т.е. пустую базу и для русского языка, то можно так:

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.



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

Текущий архив: 2006.09.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
15-1156954704
Rule
2006-08-30 20:18
2006.09.24
Поздравте меня, я уже не безработаный :-)))


2-1157434617
Handle
2006-09-05 09:36
2006.09.24
Как переименовать много файлов


15-1157597088
Pazitron_Brain
2006-09-07 06:44
2006.09.24
В далеком 2005 году...


15-1157100238
Nail
2006-09-01 12:43
2006.09.24
Как в Delphi....


1-1155547369
DelphiLexx
2006-08-14 13:22
2006.09.24
Сменить вид курсора контрола в его MouseDown е