Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Konekcija na MySql iz .NET jezika

[es] :: .NET :: Konekcija na MySql iz .NET jezika

[ Pregleda: 5002 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bOkIcA
Bojan Abramovic
Novi Sad

Član broj: 1808
Poruke: 520
*.prozone.co.yu.

Sajt: www.bokica.com


Profil

icon Konekcija na MySql iz .NET jezika07.08.2002. u 00:53 - pre 264 meseci
Trazio sam nacin za konekciju na MySql iz .NET jezika i naravno nista nekomercijalno nisam uspeo da nadjem.

Kolega i ja smo napravili za nase, za sada, male potrebe mini recordset po ugledu na adodb (php), tj. implemenirali smo postojeci kod (ovde), koji koristi libmysql.dll.
To je bilo neophodno jer direktno nije moguce koristiti libmysql.


Mozete slobodno probati nas dll, mada vam ne bih preporucio da ga koristite u komercijalne i ozbiljnije svrhe zato sto je u alfa fazi izrade i nije testirano na kompleksnijim problemima.
Jos uvek nisam siguran da li cemo nastaviti sa razvojem programa, ali bih ipak voleo da cujem (citam) utiske i sl.


Kako se koristi:
- MBClassMySql.dll je okacen na poruku
- libmysql.dll mozete skinuti ovde

- MBClassMySQL.dll dodate kao referencu
- libmysql.dll mora biti lociran u istom direktorijumu gde i (u debug ili relase dir-u) MBClassMySQL.dll


U kodu:
1. deklarisanje klase (klasika):
- u VB-u
Code:
private MojRecordSet as new MBClassMySql()

- u C#
Code:
private MBClassMySql MojRecordSet = new MBClassMySql();


2. konekcija na bazu ide ovako (dalje samo C# kod, mislim da ce se VB.NET programeri snaci):
Code:
MojRecordSet.Connect("localhost","root","sifra","TestBaza");
MojRecordSet.Disconnect();
//ako nije zatvorena konekcija, a izadje iz zone vazenja javlja gresku, naravno

(naravno radili smo error raising i ili vraca true or false)

3. SELECT upit
Code:

MojRecordSet.Select("SELECT * FROM TestTabela");


4. Citanje i setanje kroz recordset
Code:

for (int i=1; i <= MojRecordSet.Count; i++)
{
 MojRecordSet.Item("Polje1",i); //za sada vraca samo string 
 MojRecordSet.Item(2,i); //ili drugu kolonu (field)
}

// moze i setnja kroz RS sa
MojRecordSet.MoveFirst();
MojRecordSet.MoveLast();
MojRecordSet.MoveNext();
MojRecordSet.Move(5);
int trenutniRekord = MojRecordSet.CurrentRecord;

// a citanje trenutnog podatka ide ovako (odnosno razne kombinacije)
 MojRecordSet.Item("Polje1"); // po nazivu
 MojRecordSet.Item(2); // ili drugu kolonu (fields)


5. INSERT, DELETE, UPDATE ide kroz Query +transakcije
Code:

 MojRecordSet.Query("INSERT INTO...",false); //ovaj bool na kraju znaci da ide bez transakcije (ili obrnuto)
// taj deo jos treba doraditi, ali radi i ovako, naravno samo na tipovima tabela koje podrzavaju transakcije


// transakcije za vise upita
 MojRecordSet.BeginTransaction();
 // ovde vise query-a (false, naravno)
 MojRecordSet.EndTransaction(); // vraca boolean
// za sada nedostaje rollback, ali on to radi sam u slucaju greske


Mislim da bi to bilo dovoljno za sada.

pozdrav
Prikačeni fajlovi
 
Odgovor na temu

bOkIcA
Bojan Abramovic
Novi Sad

Član broj: 1808
Poruke: 520
*.prozone.co.yu.

Sajt: www.bokica.com


Profil

icon Re: Konekcija na MySql iz .NET jezika07.08.2002. u 01:33 - pre 264 meseci

Iz VB 6-ice sam se kacio na MySql preko ODBC-a.

MyODBC driver mozes skinuti ovde.

Mislim da sam imao problema sa blob i (long)text poljima sa stable release-om, dok je ovaj development release radio bez problema (bar ono sto je meni trebalo).
 
Odgovor na temu

bOkIcA
Bojan Abramovic
Novi Sad

Član broj: 1808
Poruke: 520
*.prozone.co.yu.

Sajt: www.bokica.com


Profil

icon Re: Konekcija na MySql iz .NET jezika07.08.2002. u 01:39 - pre 264 meseci
Citat:
jc denton:
Ovaj ne mogu da download-ujem :
http://www.mysqltools.com/download/libmysql32344.zip



Ako imate instaliran MySql (win), libmysql se nalazi u \mysql\lib direktorijumu.

[Ovu poruku je menjao bOkIcA dana 08.08.2002 u 01:30 AM GMT]
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: Konekcija na MySql iz .NET jezika07.08.2002. u 02:46 - pre 264 meseci
Nije li sva potrebna funkcionalnost obezbedjena instaliranjem MySQL OLE DB drajvera koji moze da se skine sa http://www.mysql.com/downloads/os-win32.html ???

Probao sam instalaciju istog i zatim konekciju na MySQL server iz VB.NET i - radi (doduse bio je to krajnje jednostavan test: procitao sam sadrzaj tabele User iz baze mysql, a zatim sadrzaj dataseta prikazao u datagridu).
Za nesto vise (apdejt, brisanje, sigurnost, itd) ne mogu da komentarisem posto ne radim sa MySQL-om, ali kako vidim postoje primeri za obican ADO i VB6, te verovatno ne bi trebalo biti problema ???

pozdrav

Commercial-Free !!!
 
Odgovor na temu

bOkIcA
Bojan Abramovic
Novi Sad

Član broj: 1808
Poruke: 520
*.prozone.co.yu.

Sajt: www.bokica.com


Profil

icon Re: Konekcija na MySql iz .NET jezika07.08.2002. u 04:23 - pre 264 meseci
Hm. nisam probao, a da sam znao sigurno se ne bi upustao u izradu client api-a.

Ali sada stvari stoje malo drugacije posto sam vec duboko 'uplivao'. Recimo da sada na ovaj nacin odredjujem brzinu mojih aplikacija (u radu sa bazom) i prilagodjavam, tj. usavrsavam kod i trudim se da bude sto jednostavnije za upotrebu.

Mozda smo samo gubili vreme, ali i to je razlog mog posta.

btw.
libmysql.dll se nalazi u \mysql\lib direktorijumu
(zaboravio sam u prvom postu)
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
..ndg-pm4-1.dialup.nethere.net



+6 Profil

icon Re: Konekcija na MySql iz .NET jezika07.08.2002. u 04:37 - pre 264 meseci
Jedno vreme sam se zanosio da napišem ADO.NET provajder za MySQL, ali sam batalio ćorava posla...
 
Odgovor na temu

*.net

Član broj: 4660
Poruke: 138
*.67.EUnet.yu



Profil

icon Re: Konekcija na MySql iz .NET jezika07.08.2002. u 18:06 - pre 264 meseci
citao sam bazama onaj top naslov o MySQL-u Oracleo itd sta je bolje. I ne znam da li sam dobro razumeo ali u MySQL-u nema relacia?? Nisam nikada probao mysql samo sam sa accesom radio i sa sql serverom 2000 a svi pricaju da je mysql bolji.
Ako nema relacija u MySQL-a onda je to za mene, ja sam do sada sve u accesu radio bez relacija jer ih nikada nisam kapirao .

Da li je to zaista znaci sto rece na bazama Riste Pejov da se relacije mogu nadoknaditi ako dobro poznajes SQL ili sam je sve pogresno shavtio??
 
Odgovor na temu

bOkIcA
Bojan Abramovic
Novi Sad

Član broj: 1808
Poruke: 520
*.prozone.co.yu.

Sajt: www.bokica.com


Profil

icon Re: Konekcija na MySql iz .NET jezika07.08.2002. u 22:00 - pre 264 meseci
Citat:
Dragi Tata:
...ali sam batalio ćorava posla...

Ako si video u mojoj prvoj poruci, dok mi degojs nije rekao za MySQL OLE DB, slozio bih se sa tobom, a sada cu jos da se sigram s ovim dok ne vidim koliko sam vremena izgubio.

Citat:
*.net:
...jer ih nikada nisam kapirao

ni ja :-P


A zar niko jos nije probao dll???

Voleo bih da znam vredi li razmisljati u tom pravcu?!
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: Konekcija na MySql iz .NET jezika07.08.2002. u 22:22 - pre 264 meseci
Kad sam rekao "corava posla", nisam mislio da bi to bilo beskorisno za ljude koji koriste MySQL. Jednostavno, ja nisam medju njima i ne vidim kakve bih koristi imao od toga.

Inace, za izradu MySQL provajdera bih koristio MC++ preko kog bih direktno zvao MySQL API. Moguce je koristiti i ostale .NET jezike, ali sa MC++ om je najlakse.
 
Odgovor na temu

bOkIcA
Bojan Abramovic
Novi Sad

Član broj: 1808
Poruke: 520
*.prozone.co.yu.

Sajt: www.bokica.com


Profil

icon Re: Konekcija na MySql iz .NET jezika08.08.2002. u 01:25 - pre 264 meseci
Meni je interesantan nacin pozivanja libmysql.dll-a. (nesto sam naucio)

Code:

// Connect to Mysql
  [SuppressUnmanagedCodeSecurity]
  [DllImport("libmySQL.dll",
         CharSet=System.Runtime.InteropServices.CharSet.Ansi,
         EntryPoint="mysql_real_connect", ExactSpelling=true)]
    public static extern IntPtr Connect(IntPtr db,
      [In] string host, [In] string user, [In] string passwd,
      [In] string dbname,
      uint port, [In] string socketName, uint flags
      );

Code:

  [SuppressUnmanagedCodeSecurity]
  [DllImport("libmySQL.dll",
         CharSet=System.Runtime.InteropServices.CharSet.Ansi,
         EntryPoint="mysql_query", ExactSpelling=true)]
    public static extern int Query(IntPtr conn, [In] string query);

 
Odgovor na temu

steffa
Damir Stefanović
Beograd

Član broj: 3996
Poruke: 33
*.ptt.yu



Profil

icon Re: Konekcija na MySql iz .NET jezika14.09.2002. u 19:18 - pre 263 meseci
Predpostavljam da niko još nije dao konkretan komentar na ovaj post zato što je za konekciju na MySQL dovoljan MySQL OLE DB. Ali šta se dešava kada želimo da koristimo naša slova u slogovima baze. Da bi slogovi bili pravilno sortirani potrebno je da setujemo promenljivu "default-character-set" na "win1250" ili "win1251" u konfiguracionom fajlu MY.INI, i da restartujemo server. Ako sada pokušamo da se konektujemo na server koristeći MySQL OLE DB, sistem će javiti grešku pri inicijalizaciji MySQL OLE provajdera !?! Da li je neko probao i imao sličnih problema sa MySQL OLE DB? Ukoliko jeste, onda je definitivno potrebna alternativa.

Probao sam DLL i on radi bez obzira na setovani karakter-set. Mislim da je vrlo ograničenih mogućnosti i da ga treba proširiti. Evo predloga. Razdvojiti funkcije konekcije i rekordseta u dve klase, kako bi se više rekordseta mogli koristiti istom konekcijom. Konekcija treba da sadrži i mogućnost konekcije na server bez selektovane baze i konekciju na određeni port. Rekordset bi trebao da sadrži BOF i EOF properti-e, i mogućnost odabira tipa vrednosti polja (string,int,date...). Na kraju bi trebalo sve to umotati u kontrole, i to da što više liče na SQLConnection i SQLDataAdapter.

Ne bi bilo loše da izbaciš kod, kako bi drugi mogli da učestvuju u razvoju.

Toliko. Pozdrav.
 
Odgovor na temu

bOkIcA
Bojan Abramovic
Novi Sad

Član broj: 1808
Poruke: 520
*.140.EUnet.yu

Sajt: www.bokica.com


Profil

icon Re: Konekcija na MySql iz .NET jezika14.09.2002. u 23:15 - pre 263 meseci
Drago mi je da se neko interesuje.

Citat:
steffa:
Mislim da je vrlo ograničenih mogućnosti i da ga treba proširiti.

Malo je već proširen.

Citat:
steffa:
Razdvojiti funkcije konekcije i rekordseta u dve klase, kako bi se više rekordseta mogli koristiti istom konekcijom.

Slažem se, tj. neophodno je.

Citat:
steffa:
Konekcija treba da sadrži i mogućnost konekcije na server bez selektovane baze i konekciju na određeni port.

Ovo za port je urađeno, a prvo bi moglo da se uradi.

Citat:
steffa:
Rekordset bi trebao da sadrži BOF i EOF properti-e, i mogućnost odabira tipa vrednosti polja (string,int,date...).

Sa BOF-om i EOF-om sam se igrao, no mislim da ih nisam "doterao" do kraja, a što se tiče type-a vraćene promenjive tu bi bilo malo više posla, no mislim da nije problem. Otprilike, da na osnovu polja i vrednosti u bazi vraćam određen tip promenjive (bool, int, string, date&time i sl.).

Citat:
steffa:
Na kraju bi trebalo sve to umotati u kontrole, i to da što više liče na SQLConnection i SQLDataAdapter.

Za ovaj deo još nemam znanja.

Citat:
steffa:
Ne bi bilo loše da izbaciš kod, kako bi drugi mogli da učestvuju u razvoju.

Imao sam hard disk failure, srećom ostao sam "samo" bez 3 god. poslova, ali ovaj kod je sačuvan. Sada završavam neke poslove pa kad se sastavim postujem i novosti, a i kod.

 
Odgovor na temu

steffa
Damir Stefanović
Beograd

Član broj: 3996
Poruke: 33
*.ptt.yu



Profil

icon Re: Konekcija na MySql iz .NET jezika16.09.2002. u 18:02 - pre 263 meseci
MS je i MSDN-u dao "vodič za kodiranje SQL provajdera". Pogledaj:

ms-help://MS.VSCC/MS.MSDNVS/cpguide/html/cpconimplementingnetdataprovider.htm

Minimalan zahtev je da se odradi klasa DbAdapter, a ostalo je po želji. Naravno poželjno je DBConnection, DBCommand ...

Cela fora je da se klasa nasledi iz Control i da se inplementiraju oni interfejsi koje su koristili u njihovim kontrolama. Znači skelet je tu treba ga "samo" popuniti. Mislim da treba razmišljati u ovom pravcu, jer bi se onda koristio isti kod za pristup bazi kao i kod ostalih provajdera, pa samim tim bi bila bezbolna zamena servera (gledano sa strane klijenta)! Kontrole bi takođe bile kompatibilne sa DataSet-om i ostalim DB kontrolama!
 
Odgovor na temu

[es] :: .NET :: Konekcija na MySql iz .NET jezika

[ Pregleda: 5002 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.