MySQL Connector. Czy konieczny?

Odpowiedz Nowy wątek
2009-08-07 21:41

Rejestracja: 11 lat temu

Ostatnio: 7 lat temu

0

Witam

Potrzebujemy wykorzystać bazę SQL z dostępem z zewnątrz. Znajomy posiada własny hosting i założył dla nas takową. Mam jednak problemy z połączeniem się z nią (komunikat jak na screenach poniżej). Pomyślałem, że może coś źle skonfigurowana lub jakaś inna przyczyna, więc założyłem konto na freemysql.net. Jednak rezultat jest taki sam. Admin owej strony odpowiedział mi na forum, że bez MySQL Connectora nie ma szans (http://dev.mysql.com/downloads/connector/). Ale czy naprawdę muszę instalować ten konektor, żeby móc się połączyć z zewnętrzną bazą danych? Czy ADO.NET jest aż tak upośledzone pod tym względem? :/ Mi się wydaje, że to nie tak dlatego do Was pytanie czy musze, a może mam coś źle w mojej konfiguracji:

http://img256.imageshack.us/img256/1467/connections.jpg

http://img195.imageshack.us/img195/6264/otheroptions.jpg (sorry, ze linki, ale nie udało mi sie zrobić thumbnailsów :/)

Edit: Dodam, że program Navicat łączy się z obiema bazami bez problemu, więc to ewidentnie wina C#/VS

Pozostało 580 znaków

2009-08-08 01:06

Rejestracja: 15 lat temu

Ostatnio: 6 lat temu

0

Nie musisz nic instalowac, wystarczy jak dodasz referencję do Mysql.Data.dll i umieścisz ten plik razem ze swoim programem.

Pozostało 580 znaków

2009-08-08 01:51

Rejestracja: 11 lat temu

Ostatnio: 7 lat temu

0

No tak, ale czy samo System.Data.SQLclient nie wystarczy do zdalnego połączenia z bazą na serwerze?

Pozostało 580 znaków

Rev
2009-08-08 13:43
Rev
Moderator

Rejestracja: 12 lat temu

Ostatnio: 4 godziny temu

0

Natywny format baz danych dla Microsoft to MSSQL i Access. Po za tym, zawsze było tak, że to autor bazy dostarcza connectora.


Pozostało 580 znaków

2009-08-09 15:42

Rejestracja: 11 lat temu

Ostatnio: 7 lat temu

0

Hej,
Prosiłbym rozjaśnić mi jeszcze trochę sytuację. MySqlConnector jest na licencji GNU GPL i nie mogę go użyć komercyjnie, choć działa bez zarzutu.

  1. System.Data.SQLclient działa tylko dla połączeń z MS SQL Server 200x? Nie połączę się zdalnie z żadną bazą MySQL, lecz tylko z bazą MS SQL?
  2. Czy istnieje jakaś inna możliwość na połączenie się za pomocą C# bez tego connectora (MySql.Data.MySqlClient) z bazą MySQL? Np. za pomocą jakiejś innej klasy z ADO.NET? Czy OLEDB podołałby temu zadaniu? (Nie miałem czasu jeszcze sprawdzić, dopiero późnym wieczorem będę mógł)

Proszę odpowiedzieć czy dobrze zrozumiałem. Dziękuję :)

Pozostało 580 znaków

2009-08-09 16:17
Moderator

Rejestracja: 11 lat temu

Ostatnio: 2 godziny temu

Lokalizacja: Wrocław

0

Podobno przez OleDb się da, ale ja nigdy nie miałem czasu tego sprawdzić. Teoretycznie tym da się połączyć ze wszystkim, ale jak np. chciałem z bazą PostgreSQL, to łatwiej mi było użyć dedykowanej, zewnętrznej biblioteki.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2009-08-09 22:52

Rejestracja: 11 lat temu

Ostatnio: 7 lat temu

0

Odbc wymaga dodatkowego sterownika, a OleDb dodatkowego provider'a. Myślałem, że OleDb ma większe możliwości, ale wszystko na jedno wychodzi i tak trzeba użyć zew. biblioteki i tak. Niefajnie, naprawdę :/
Może da się coś jeszcze poradzić?

Edit: Kurcze.. Chyba powinienem zrobić to na samym początku, ale wpadlem na to dopiero teraz. Na 4programmers jest artykuł (http://4programmers.net/C_sharp/Artyku%C5%82y/Bazy_danychw%C5%9Brodowisku_.NET), w którym czytam:

Do popularnej bazy MySQL można podłączyć się za pomocą 3 sposobów:
• ODBC.NET – sterownik MyODBC
• Providery własne MySQL .NET
• OLEDB.NET – provider MyOLDDB
Mimo, iż sposób pierwszy i trzeci nie wymagają żadnych dodatkowych elementów [...]

U mnie ani MyOLEDB (w artykule chyba jest literówka?), ani MyODBC wydaje sie nie być?

Po zastosowaniu sterownika MyODBC dostaje:

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no
default driver specified

OdbcConnection myConnection = new OdbcConnection("DRIVER=MyODBC; UID=login; PWD=hasło; Database=bazadanych; Server=moj.serwer.pl");

A po zastosowaniu MyOLEDB:

The 'MyOLEDB' provider is not registered on the local machine.

OleDbConnection myConnection = new OleDbConnection("Provider=MyOLEDB; Data Source=moj.serwer.pl; InitialCatalog=baza; User ID=uzytkownik; Password=haslo");

Czy to możliwe, że u mnie nazwy sterowników są inne, lub czy mogę je jakoś doinstalować?

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0