Форум: "Базы";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];
ВнизПрограммное создание драйвера для работы с ADO Найти похожие ветки
← →
Berg (2003-01-28 14:00) [0]Есть две программы, работающие с базами через ADO. Обе используют парадоксовские драйвера. Вопрос: как программно создать драйвер в ODBC Data Sources с заданым путем к базе?
← →
sniknik (2003-01-29 00:04) [1]> программно создать драйвер
это тебе надо на C переходить, на дельфи драйвера плохо писать. :о)
может нужно другое? попробуй вопрос по другому задать и посмотри строку подключения может это оно и есть? (драйвер задается в строке, алиас не нужен, ODBC есть, все условия вопроса соблюдены)
Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DRIVER={Microsoft Paradox Driver (*.db )};DBQ=D:\;DefaultDir=D:\;DriverId=282;FIL=Paradox 4.X;MaxBufferSize=2048;PageTimeout=5;"
← →
Berg (2003-01-29 09:16) [2]>>sniknik © (29.01.03 00:04)
Да, вопрос я немного неправильно задал, ODBC и есть драйвер, а нужно создать строку подключения с указанием пути к базе, попробую воспользоваться вашим советом.
← →
Lord Warlock (2003-01-29 09:21) [3]Есть такая функция SQLConfigDataSource. Она делает то что тебе нужно (те добавляет источник данных ODBC).
← →
sniknik (2003-01-29 11:04) [4]2 Lord Warlock © (29.01.03 09:21)
SQLConfigDataSource это случаем не из MSSQL команда?
(в хелпе дельфи ее не нашол в BOL есть) если имел ее ввиду то немного не к месту, MSSQL у него может не стоять.
или можно както в дельфях использовать?
(единственное что нашол в хелпах это)
#include <stdio.h>
#include <windows.h>
#include "sql.h"
#include <odbcinst.h>
int main() {
RETCODE retcode;
UCHAR *szDriver = "SQL Server";
UCHAR *szAttributes = "DSN=MyFileDSN";
retcode = SQLConfigDataSource(NULL,
ODBC_REMOVE_DSN,
szDriver,
szAttributes);
}
(подозреваю что без одного из выделенных модулей, которых у меня нет, работать не будет)
если для нее нужно дополнительная библиотека, то ну ее нафиг, у меня к примеру есть код для добавления алиаса в ODBC на дельфи (гдето). ни разу не пригодилось, в ADO гораздо проще прямо драйвер с строке указать. это конечно мое ИМХО.
А для самообразования неплохо узнать как же ее в дельфях использовать? в каких модулях описана? где взять если нестандартные?
← →
asmith (2003-01-29 12:54) [5]SQLConfigDataSource - функция ODBC-интерфейса, для ее использования нужно поискать в сети заголовочные файлы ODBC API, переписанные с С на ObjectPascal. Для создания ODBC Data Sources вызывать ее нужно с параметрами ODBC_ADD_DSN bkb ODBC_ADD_SYS_DSN.
← →
stone (2003-01-29 12:58) [6]функция EditConnectionString позволит не только создать строку подключения но и предоставит доступ к стандартным мехнизмам создания ODBC Data Sources
← →
sniknik (2003-01-29 13:24) [7]asmith (29.01.03 12:54)
как я и подозревал. :-((
гораздо проще переделать под свою базу код из хелпа MySql, если уж действительно необходимость сделать алиас в ODBC, или искать такоеже для своей базы раз уж все одно искать "файлы ODBC API", еще проще драйвер в строке указать конечно, но ... если необходимость!?
(пример и в BDE прописывает, привожу как есть, нужна только первая часть, сам с ним не разбирался надобности как говорил уже не было)
Also, here is some potentially useful Delphi code that sets up both an ODBC entry and a BDE entry for MyODBC (the BDE entry requires a BDE Alias Editor that is free at a Delphi Super Page near you. (Thanks to Bryan Brunton bryan@flesherfab.com for this):
fReg:= TRegistry.Create;
fReg.OpenKey("\Software\ODBC\ODBC.INI\DocumentsFab", True);
fReg.WriteString("Database", "Documents");
fReg.WriteString("Description", " ");
fReg.WriteString("Driver", "C:\WINNT\System32\myodbc.dll");
fReg.WriteString("Flag", "1");
fReg.WriteString("Password", "");
fReg.WriteString("Port", " ");
fReg.WriteString("Server", "xmark");
fReg.WriteString("User", "winuser");
fReg.OpenKey("\Software\ODBC\ODBC.INI\ODBC Data Sources", True);
fReg.WriteString("DocumentsFab", "MySQL");
fReg.CloseKey;
fReg.Free;
Memo1.Lines.Add("DATABASE NAME=");
Memo1.Lines.Add("USER NAME=");
Memo1.Lines.Add("ODBC DSN=DocumentsFab");
Memo1.Lines.Add("OPEN MODE=READ/WRITE");
Memo1.Lines.Add("BATCH COUNT=200");
Memo1.Lines.Add("LANGDRIVER=");
Memo1.Lines.Add("MAX ROWS=-1");
Memo1.Lines.Add("SCHEMA CACHE DIR=");
Memo1.Lines.Add("SCHEMA CACHE SIZE=8");
Memo1.Lines.Add("SCHEMA CACHE TIME=-1");
Memo1.Lines.Add("SQLPASSTHRU MODE=SHARED AUTOCOMMIT");
Memo1.Lines.Add("SQLQRYMODE=");
Memo1.Lines.Add("ENABLE SCHEMA CACHE=FALSE");
Memo1.Lines.Add("ENABLE BCD=FALSE");
Memo1.Lines.Add("ROWSET SIZE=20");
Memo1.Lines.Add("BLOBS TO CACHE=64");
Memo1.Lines.Add("BLOB SIZE=32");
AliasEditor.Add("DocumentsFab","MySQL",Memo1.Lines);
stone © (29.01.03 12:58)
и еще PromptDataSource да, но не всегда удобно, а если юзер не может настроить стандартными, для этого и нужно программой, наверное.
а то можно при первом запуске попросить запустить ODBC администратор и прописать ... :о))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c