CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Połączenie z baza MySQL
Strona 1 z 2

Połączenie z baza MySQL

Nowy postNapisane: wtorek, 7 maja 2013, 00:28
przez sebaskow
Witam.

Próbuję połączyć się z bazą danych MySQL poprzez komponent TSQLConnection niestety coś chyba robię nie tak.
Ponieważ jest to baza na próbę tylko w celach szkoleniowych :) podaję dane do servera:

Server: - mysql3.ph-hos.osemka.pl
Nazwa bazy danych: - 1229967_mydatabase
Użytkownik: - 1367143719_f
Hasło: - bastion1

Proszę o pomoc.

Re: Połączenie z baza MySQL

Nowy postNapisane: wtorek, 7 maja 2013, 08:46
przez rafalskraba
Witaj,

połączyłem się z Twoją bazą danych poprzez komponenty Davart TUniConnection oraz MySQLUniProvider. Natomiast nie połączyłem się przy pomocy TSQLConnection ponieważ nie mam zainstalowanych bibliotek do baz danych SQL.

Pozdrawiam

Rafał

Re: Połączenie z baza MySQL

Nowy postNapisane: wtorek, 7 maja 2013, 10:21
przez Corvis
Kod: Zaznacz cały
object SQLConnection1: TSQLConnection
  ConnectionName = 'MySQLConnection'
  DriverName = 'MySQL'
  GetDriverFunc = 'getSQLDriverMYSQL'
  LibraryName = 'dbxmys.dll'
  LoginPrompt = False
  Params.Strings = (
    'DriverName=MySQL'
    'HostName=mysql3.ph-hos.osemka.pl'
    'Database=1229967_mydatabase'
    'User_Name=1367143719_f'
    'Password=bastion1'
    'ServerCharSet='
    'BlobSize=-1'
    'ErrorResourceFile='
    'LocaleCode=0000'
    'Compressed=False'
    'Encrypted=False'
    'ConnectTimeout=60')
  VendorLib = 'LIBMYSQL.dll'
  Left = 312
  Top = 152
end



Skopjuj ten kod od oboject do end ctrl + c i u siebie na formie zrób ctrl + v

u mnie działa

Re: Połączenie z baza MySQL

Nowy postNapisane: wtorek, 7 maja 2013, 13:28
przez sebaskow
Wkleiłem tak jak zaproponowałeś leczy chyba nie mam jakiś sterowników.
Nie wiem za bardzo skąd mogę pobrać takie sterowniki. I pytanie podstawowe czy użytkownik również będzie wymagał takich sterowników ?

Re: Połączenie z baza MySQL

Nowy postNapisane: wtorek, 7 maja 2013, 13:40
przez Corvis
sql.png


Ja mam taką listę. Wybierasz MySQL i wypełniasz Params i wszystko działa :)

Użytkownik będzie musiał mieć biblioteki *.dll:

libmySQL.dll
dbxmys.dll
midas.dll

Re: Połączenie z baza MySQL

Nowy postNapisane: wtorek, 7 maja 2013, 13:55
przez sebaskow
Nie mam tej ostatniej biblioteki.

Oczywiście wybrałem MySQL z listy Driver.

Mógłbyś mi załączyć te 3 biblioteki ? Oczywiście wklejam je do System32 lub do folderu gdzie znajduje się .exe ?

Re: Połączenie z baza MySQL

Nowy postNapisane: wtorek, 7 maja 2013, 14:07
przez Corvis
midas.dll jest ci potrzebny jak używasz TClientDataSet

Re: Połączenie z baza MySQL

Nowy postNapisane: wtorek, 7 maja 2013, 16:21
przez sebaskow
Super. Działa :D
Miałem złą bibliotekę.
Dziękuję - teraz dalsza droga przez mękę. ;)

Re: Połączenie z baza MySQL

Nowy postNapisane: środa, 8 maja 2013, 08:06
przez sebaskow
No i zaczęły się problemy. Nie mogę wysłać zapytania bo wyskakuje kolejny błąd.

Nieprawidłowa nazwa tabeli :roll:



KOD cpp:     UKRYJ  
SQLConnection1->Connected = true;
SQLQuery1->SQLConnection = SQLConnection1;

SQLQuery1->SQL->Add("SELECT * FROM 1229967_mydatabase.MarkiAut");
SQLQuery1->ExecSQL(true);
SQLQuery1->Open();

Caption = SQLQuery1->RecordCount;


Nie wiem co źle robię ?

Komunikat2.jpg

Re: Połączenie z baza MySQL

Nowy postNapisane: niedziela, 12 maja 2013, 06:38
przez sebaskow
Proszę o pomoc bo już mi nic do głowy nie przychodzi.

Stworzyłem taki kod:

KOD cpp:     UKRYJ  
SQLConnection1->Connected = true;
SQLConnection1->Open();

SQLDataSet1->SQLConnection = SQLConnection1;

SQLDataSet1->CommandText = "SELECT * FROM 1229967_mydatabase.MarkiAut";

SQLDataSet1->Open();

        Edit1->Text = SQLDataSet1->FieldByName("Marka")->AsString;


SQLDataSet1->Close();


I program się zawiesza podczas wykonywania
KOD cpp:     UKRYJ  
SQLDataSet1->Open();


Może macie jakiś pomysł co jest nie tak ?

Re: Połączenie z baza MySQL

Nowy postNapisane: czwartek, 20 czerwca 2013, 15:33
przez Corvis
Kod: Zaznacz cały
SQLQuery1->ExecSQL(true);


Stosuje się tylko do zapytań nie zwracających kursora. Select zwraca więc to jest błąd.

To odnośnie 1 postu

Odnośnie 2.

Straszny burdel w tym kodzie :P Mam nadzieję, że to tylko kod testowy. Czy tabela 1229967_mydatabase.MarkiAut ma dużo danych ?

Re: Połączenie z baza MySQL

Nowy postNapisane: piątek, 21 czerwca 2013, 02:16
przez sebaskow
Nie. to jest bardzo mała tabela - stworzona na próbę.

Re: Połączenie z baza MySQL

Nowy postNapisane: piątek, 21 czerwca 2013, 13:55
przez Corvis
Co to znaczy zawiesza się ??

Masz jakieś komunikaty ?

Re: Połączenie z baza MySQL

Nowy postNapisane: piątek, 21 czerwca 2013, 16:14
przez Cyfrowy Baron
Podaj więcej informacji, gdyż z tego kodu niemal nic nie da się wywnioskować. Skoro to baza testowa, to może ją udostępnij do testów jak i sam program.

Re: Połączenie z baza MySQL

Nowy postNapisane: czwartek, 27 czerwca 2013, 02:07
przez sebaskow
W załączniku kod:

Ponieważ .dfm jest zablokowane:

Kod: Zaznacz cały
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 245
  ClientWidth = 472
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  OnClose = FormClose
  PixelsPerInch = 96
  TextHeight = 13
  object Button1: TButton
    Left = 8
    Top = 8
    Width = 137
    Height = 25
    Caption = 'Po'#322#261'cz Wykonaj SQL'
    TabOrder = 0
    OnClick = Button1Click
  end
  object Edit1: TEdit
    Left = 8
    Top = 208
    Width = 201
    Height = 21
    TabOrder = 1
    Text = 'Edit1'
  end
  object SQLConnection1: TSQLConnection
    ConnectionName = 'MySQLConnection'
    DriverName = 'MySQL'
    GetDriverFunc = 'getSQLDriverMYSQL'
    LibraryName = 'dbxmys.dll'
    LoginPrompt = False
    Params.Strings = (
      'DriverName=MySQL'
      'HostName=mysql3.ph-hos.osemka.pl'
      'Database=1229967_mydatabase'
      'User_Name=1367143719_f'
      'Password=bastion1'
      'ServerCharSet='
      'BlobSize=-1'
      'ErrorResourceFile='
      'LocaleCode=0000'
      'Compressed=False'
      'Encrypted=False'
      'ConnectTimeout=60')
    VendorLib = 'LIBMYSQL.dll'
    Connected = True
    Left = 16
    Top = 48
  end
  object SQLDataSet1: TSQLDataSet
    DbxCommandType = 'Dbx.SQL'
    Params = <>
    Left = 16
    Top = 96
  end
end