Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ODBC Drivers создание базы данных [D7]


Alexander1966 ©   (2004-08-05 16:54:00) 

Надо програмно создать базу данных Access.

ADOX не поможет: для ODBC Drivers нет интерфейса.


sniknik   (2004-08-05 18:09:00) [1]

ODBC DSN это тоже не совсем база. ;о))
и все ради чего? ради того чтобы ошибки в своей программе не править... ;о)))


Alexander1966   (2004-08-05 18:03:00) [2]

Все, нашел
http://www.sources.ru/delphi/delphi_create_systemdsn.shtml


46_55_41_44   (2004-08-05 17:44:00) [3]

Да причем тут создание БД и создание таблицы...
Это две разные вещи!!!


Alexander1966   (2004-08-05 17:43:00) [4]

Попробую, но я кажется вышел на след: надо использовать
ODBC API функцию: SQLConfigDataSource


sniknik   (2004-08-05 17:28:00) [5]

для jet-а разграничителями для нестандартных имен являются скобки для odbc двойные кавычки. ??? все понятно?


Alexander1966   (2004-08-05 17:21:00) [6]

Этот пример я проверил, он действительно работает.

 Но: сдесь используется: 'Provider=Microsoft.Jet.OLEDB.4.0
а надо:
 Provider=MSDASQL.1; и там еще куча всего (строка создается при помощи редактора ADOConEd)

Почему надо? Потому,что при Provider=Microsoft.Jet.OLEDB.4.0
вылетает ошибка на следующей команде:
const
 NAME_TABLE='log';
 CREATE TABLE "'+NAME_TABLE+'" ('+
              'CiscoName      char(20),'+
              'Line           char(3) ,'+
              'IPadress       char(20),'+
              'SessionStart   float,'+
              'SessionEnd     float,'+
              'OctetsInStart  Integer ,'+
              'OctetsOutStart Integer ,'+
              'SpeedMaxIn     Float   ,'+
              'SpeedMaxOut    Float   ,'+
              'NameOriginal   char(20));';
.....................................
.....................................
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(CREATE_TABLE);
  ADOQuery1.ExecSQL;

А вот при Provider=MSDASQL.1; ошибки нет


46_55_41_44   (2004-08-05 17:11:00) [7]

Если захочешь... напиши мне...
я тебе пришлю свою программку, в которой есть пример и создания БД и ее сжатия...
не сделал пока только репэйр.. просто не надо было... вот надо будет и это сделаю! :)


46_55_41_44   (2004-08-05 17:03:00) [8]

ADOX как раз-таки поможет...
У меня была такая же проблема не давно....

var
AdoEngine: Variant;
Sbase : String;
begin
Sbase := 'Путь\Имя создаваемой Базы';

if FileExists(sBase) then exit;
AdoEngine:= CreateOleObject('ADOX.Catalog');
try
  AdoEngine.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + sBase + ';Jet OLEDB:Engine Type=5;');
  AdoEngine.ActiveConnection.Close;
finally
  AdoEngine:= '';
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо