Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 00:34 01.06.24 
Компютри и Интернет
   >> Delphi
Всички теми Следваща тема *Кратък преглед

Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема Прочитане на Access със Querty  
АвторMилeнa (Нерегистриран)
Публикувано09.11.01 06:01



Трябва да извеждам едни справки от база данни, написани с Access 2000. И разбира се искам всичко да направя със SQL заявки (за по-лесно). Та въпросът ми е: някой правил ли е нещо подобно, и как става точно. Всякакви идеи са добре дошли.



Тема Re: Прочитане на Access със Quertyнови [re: Mилeнa]  
Автор AquilaX (познат)
Публикувано09.11.01 08:47



Ами става много лесно. Трябва да се използват ADO компонентите.
Значи слагаш си ADOQuery, задаваш му Connection String към DSN (който се създава предварително от Control Panel и сочи към Access базата ти от данни). След като си настроиш връзката ползваш AdoQuery.SQL.Text := "Заявката която ти трябва" (можеш да ползваш заявки генерирани и от самият Access), а после викаш ExecSQL, или Open методите на AdoQuery в зависимост от това дали заявката връща резултат.
Ако имаш още проблеми пиши.

AquilaX

____________
умният знае кога да говори, мъдрият знае кога да мълчи


Тема Re: Прочитане на Access със Quertyнови [re: AquilaX]  
АвторMилeнa (Нерегистриран)
Публикувано09.11.01 09:16



Това добре, обаче не искам да минавам през ODBC драйвера. Програмата ще работи с няколко бази данни от Access, разположени в различни директории, настройките на ODBC - то трябва да се правят ръчно (поне не знам как става от програмата). С една дума - ако може директно.



Тема Re: Прочитане на Access със Quertyнови [re: Mилeнa]  
Автор AquilaX (познат)
Публикувано09.11.01 14:58



е ще ти трябват някакви Native драйвери за Access. Иначе DNS се създава и програмно макар да не е толкова лесно колкото би трябвало да е т.е. от Borland не са го направили. Може да използваш следното нещо :


const
ODBC_ADD_DSN = 1; // Add data source
ODBC_CONFIG_DSN = 2; // Configure (edit) data source
ODBC_REMOVE_DSN = 3; // Remove data source
ODBC_ADD_SYS_DSN = 4; // add a system DSN
ODBC_CONFIG_SYS_DSN = 5; // Configure a system DSN
ODBC_REMOVE_SYS_DSN = 6; // remove a system DSN
type
TSQLConfigDataSource = function( hwndParent: HWND;
fRequest: WORD;
lpszDriver: LPCSTR;
lpszAttributes: LPCSTR ) : BOOL; stdcall;


function TfmUpdate.CreateMDBDSN(FileName, DSNName, Description:String):boolean;
var
pFn: TSQLConfigDataSource;
hLib: LongWord;
strDriver: string;
strHome: string;
strAttr: string;
strFile: string;
fResult: BOOL;
srInfo : TSearchRec;
begin
Result := True;
strFile := FileName;
strHome := ExtractFilePath (FileName);
hLib := LoadLibrary( 'ODBCCP32' ); // load from default path
if( hLib <> NULL ) then
begin
@pFn := GetProcAddress( hLib, 'SQLConfigDataSource' );
if( @pFn <> nil ) then
begin
// force (re-)create DSN
strDriver := 'Microsoft Access Driver (*.mdb)';
strAttr := Format( 'DSN='+DSNName+#0+
'DBQ=%s'+#0+
'Exclusive=1'+#0+
'Description='+Description+#0+#0,
[strFile] );
fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );
if( fResult = false ) then Result := False;
// test/create MDB file associated with DSN
if( FindFirst( strFile, 0, srInfo ) <> 0 ) then
//strFile := '.\\TestData.MDB';
begin
strDriver := 'Microsoft Access Driver (*.mdb)';
strAttr := Format( 'DSN='+DSNName+#0+
'DBQ=%s'+#0+
'Exclusive=1'+#0+
'Description='+Description+#0+
'CREATE_DB="%s"'#0+#0,
[strFile,strFile] );
fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );
if( fResult = false ) then Result := False;
end;
FindClose( srInfo );
end;
(* MASSIVE SNIP *)
FreeLibrary( hLib );
end
else
begin
Result := False;
end;
end;



Успех!

AquilaX

P.S Сигурно може да използваш и OLE Automation ама мене нещо не ме кефи това а сигурно е и бавно.

____________
умният знае кога да говори, мъдрият знае кога да мълчи

Редактирано от AquilaX на 09.11.01 15:01.



Тема Re: Прочитане на Access със Quertyнови [re: Mилeнa]  
Автор Miro ()
Публикувано09.11.01 17:22



Hi,

По добрия варинт при ADO e да използваш Jet провайдер за директен достъп до Access, но за Access 2000 ще трябва да имаш и последните update-и от Borland. Но не очаквай голяма скорост и ще има проблеми при справки от таблици от различни бази.

Засега толкова, като имаш конкретни проблеми...

Миро.



Тема Re: Прочитане на Access със Quertyнови [re: Miro]  
АвторMилeнa (Нерегистриран)
Публикувано11.11.01 10:33



Благодаря на всички които ми отговориха. Вече всичко е ок.



Тема Re: Прочитане на Access със Quertyнови [re: Mилeнa]  
Автор Miro ()
Публикувано12.11.01 12:02



Hi,

За съжаление нищо няма да е ОК с ADO !

Проблемите ти тепърва започват... но питай и може и да стане. Освен това може да следиш и newsgroup-ата на Borland за ADO - там има доста теми....

Миро.



Тема Re: Прочитане на Access със Quertyнови [re: Miro]  
Автор Eмилиo (Вече нормален!)
Публикувано12.11.01 21:30



Вярно е за проблемите с ADO аз не ги бях ползвал, но едно приятелче дето се мъчи с тях, ми разправяше какви гимнастики прави за да им избегне бъговете :)



Тема Re: Прочитане на Access със Quertyнови [re: Eмилиo]  
Автор Miro ()
Публикувано13.11.01 15:59



Хммм...

Позната история . Не ме питай аз какви гимнастики правя .
Но сега правя една последна - зарязвам ADO и се прехвърлям на Interbase .

Tnx,

Miro.



Тема Re: Прочитане на Access със Quertyнови [re: Miro]  
Автор Eмилиo (Вече нормален!)
Публикувано13.11.01 17:45



:)))) Не си мисли че там няма да има хватки... по малко са но не са болка за умиране ;) Аз си бачкам на Interbase от 2-3 год, и не ми правят впечатление :)




Страници по тази тема: 1 | 2 | >> (покажи всички)
Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.