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

Вниз

Программное создание драйвера для работы с 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
3-38039
Olegon
2003-01-28 13:32
2003.02.13
Транзакции


3-38103
sndanil
2003-01-27 17:34
2003.02.13
Yaffil Personal


8-38393
OxOTHuK
2002-10-31 14:41
2003.02.13
делфи и 3Д макс


1-38192
drin
2003-02-04 13:59
2003.02.13
Ras API


3-38090
Beep
2003-01-25 16:05
2003.02.13
Как осуществляется быстрый поиск в IBTable?