Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
7-38578
fc
2002-12-09 22:10
2003.02.13
клавиатура


1-38217
Alex Y
2003-02-05 08:13
2003.02.13
try ... except


7-38593
-Alex-
2002-12-10 19:40
2003.02.13
добавление полей в OpenDialog и SaveDialog


1-38267
sterran
2003-02-05 16:44
2003.02.13
Сообщения Windows


14-38561
Shadow
2003-01-29 21:07
2003.02.13
Ааааааааааа......





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский