Skocz do zawartości

[Delphi] - Delphi2007 MySQL na ZEOSDBO-6.6.6-stable


Integer

Polecane posty

Witam.

 

Najpierw treść kodu aby było wiadomo co się dzieje. Kod jest kompletny więc może komuś się przyda.

 

 

A pytanie jest krótkie. Na Serwerze na kompie programik tworzy i kasuje tabelę bez problemów.

Jednak gdy zmienię na

HostName:= 'www.opengl.com.pl'; // '127.0.0.1'

to przy próbie utworzenia i kasowanie tabeli na serwerze w www....

 

wyskakują komunikaty:

"Can not open a Resultset." - przy kasowaniu tabeli w TabeleTworzClick, jednak kasowanie zostało wykonane

 

"Can not open a Resultset." - przy tworzeniu tabeli w TabeleKasujClick, jednak tworzenie zostało wykonane, a komunikat uniemożliwia pokazanie tabeli; po osobnym kliknięciu opcji TabelePokazClick tabela jednak zostaje pokazana.

 

Jak się pozbyć tego "Can not open a Resultset."??

Z góry dziękuje za podpowiedź.

 

 

 

unit DBDelfinBase;


interface
Uses
 ZConnection, StdCtrls,
 SysUtils, Classes, SqlExpr, Dialogs, WideStrings;

function  BDConnectionON(ZConnection1: TZConnection; MInfo: TMemo; CanShowMsgErr: Boolean): Boolean;
procedure BDConnectionOFF(ZConnection1: TZConnection; MInfo: TMemo);
procedure BDOptionsLoad(ZConnection1: TZConnection);

implementation


function  BDConnectionON(ZConnection1: TZConnection; MInfo: TMemo; CanShowMsgErr: Boolean): Boolean;
begin
 MInfo.Lines.Add('Próba podłączenia z BD');
 if not ZConnection1.Connected then
 begin
   BDOptionsLoad(ZConnection1);
   try
     ZConnection1.Connected:= True;
     MInfo.Lines.Add('Połączono z BD.');
     Result:= True;
   except
     MInfo.Lines.Add('Nie można się połączyć z bazą danych.');
     if CanShowMsgErr
       then
         MessageDlg('Nie można się połączyć z bazą danych.', mtWarning, [mbOK], 0);

     Result:= False;
   end;
 end else
 begin
     MInfo.Lines.Add('Połączenie z BD już istnieje.');
     Result:= True;
 end;
end;

procedure BDConnectionOFF(ZConnection1: TZConnection; MInfo: TMemo);
begin
 MInfo.Lines.Add('baza próba rozłączenia');
 if ZConnection1.Connected then
 begin
   ZConnection1.Connected:= False;
 end;
end;

procedure BDOptionsLoad(ZConnection1: TZConnection);
begin
 With ZConnection1 do begin
   Database:= 'integers_test1';
   HostName:= 'www.opengl.com.pl';    // '127.0.0.1'
   LoginPrompt:= False;
   Password:= '1qaz2wsx';
   Port:= 3306;
   Protocol:= 'mysql-5';
   User:= 'integers_test1_u';
 end;

end;

Ś)Uą()Ń()(      ą  (]5MUŃąYŃ
ąĄ
Ńą(ąiŃŃI=ŃiŃŃŃiŃi
Ń(5    

ŃąMŃ
Ńą()Ń((((QąĄQ(i
ŃQi
Ń(55Q55(
Q5%Ń(Q5%Ń(MŃŃ       QMŃŃ    (iEQiE( Q       (ŃMQŃM(QąAQ5%Ń(5%źQ5ź(ąQ5%Ń(Qą-Q5%Ń(QąQQ5%Ń(IQ5%Ń(

ąŹĄMQ=(i
ŃŃ
ĄMQ=(i
ŃŃĄMQ=(
ąŹĄMQ=(QąA
ąŹĄMQ=(I
ąŹĄMQ=(ŃĄMQ=(Qą-
ąŹĄMQ=(QąQ
ąŹĄMQ=(MĄĄMQ=(-
ąŹĄMQ=(ŃAŃąŃ(ąAąąŃ(()(Q()ąŃŃ()H()Q

ąŹĄMQ=)( 
Ń=8Ąi
Ń5%źQ((iE
Ńi
Ń(ŃMŃMiE(        ŃMŃM)()QMĄĄMQ=)(

ąŹĄM)()Q
ąŹĄMQ=)( 
Ń=Ąi
Ń5%ź)()QŃĄMQ=)(       
Ń=Ąi
Ń5%ź)(()Qi
ŃŃ
ĄMQ=)(MŃŃ AąltQ
)()Qi
ŃŃĄMQ=)(MŃŃ      AąltQ)(()QQąA
ąŹĄMQ=)(  
Ń=8Ąi
Ń5%źQŃĄ(Ń(5%ź1AŃą(iEME0
ą(iEME0M1
PI=4(iEŃŃ((MĄ5QąŃ()()QQą-
ąŹĄMQ=)(iEME0
ą(iEME0I=@Q    1%a%MQL(iEŃŃ)()QQąQ
ąŹĄMQ=)(iEME0
ą(źźiEME0
IQQ        1Ą%9P9=P9U10UQ=}%9
I59P
!HAI%5Id-dĄ(iEME0
IQQ        1}U9M%99=P9U10UQ=}%9
I59PAI%5Id- dĄąźĄąĄąĄŃą
Ą(iEŃŃ((QąA
ąŹĄM)()(

Link do komentarza
Udostępnij na innych stronach

1. wsyledzic zrod komunikatu i zrozumiec co jest nie tak.

2. roziwazanie typu gwóźdź: Wziąść całość w blok try Except :D

 

Zreszta wydaje mi sie ze zarowno drop jak i create nie zwraca wyniku, wiec pytasz nie ta komenda co trzeba. Nie pamietam nazwy funkcji ale wiem ze jeden typ zapytania byl dla komend zwracajacych rezultat inny dla pozostalych

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

Za poradą zrobiłem poniższe i działa, chyba nie powinno być skutków ubocznych :]

100-krotne dzięki.

 

 
procedure TForm1.TabeleKasujClick(Sender: TObject);
begin
 ZQuery1.SQL.Clear;
 ZQuery1.SQL.Add('DROP TABLE IF EXISTS osoby');
 try
   ZQuery1.Active := true;
 except
 end;
end;

procedure TForm1.TabeleTworzClick(Sender: TObject);
begin
 ZQuery1.SQL.Clear;
 // ZQuery1.SQL.Add('CREATE TABLE osoby (id INT NOT NULL AUTO_INCREMENT, imie CHAR(20), PRIMARY KEY(id))');
 ZQuery1.SQL.Add('CREATE TABLE osoby ( id_osoby int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, imie char(50) not null, nazwisko char(50) not null, email char(50) not null, gg char(15), telefon char(20) )');
 try
   ZQuery1.Active := true;
 except
 end;

 Form1.TabelePokazClick(Sender);
end;


Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...