S.a.
Muharrem hocanın Datasnap Json örneği üzerinden giderek server ve client oluşturup bağlantıyı kurabiliyorum. Select yada insert into gibi demeler yaptım. Kayıt okuma ve kaydetmede sıkıntı yok. Sıkıntı şurada; bir kez bağlanıp select ya da insert yaptıktan sonra ikinci işleme tepki vermiyor. Örnek olarak select ile müşteri cari listesini listeliyorum, burada editteki değeri değiştirip ikinci defa sorgulayamıyorum, veya listelendikten sonra seçtiğim cari verisini başka bir tabloya insert yapamıyorum. Server kısmında 'bağlantı geldi' ikazını verdikten sonra askıda kalıyor. Acaba nerede hata yapıyorum.
Datasnap ikinci kez sorgu çalışmıyor..
Datasnap ikinci kez sorgu çalışmıyor..
Erbab-ı kemâli çekemez nakıs olan, rencide olur Dide-i Huffaş ziyadan....
Re: Datasnap ikinci kez sorgu çalışmıyor..
Hiç fikri olan yok mu abiler?
Takılıp kaldık bu noktada...!
Takılıp kaldık bu noktada...!
Erbab-ı kemâli çekemez nakıs olan, rencide olur Dide-i Huffaş ziyadan....
Re: Datasnap ikinci kez sorgu çalışmıyor..
Iyi geceler. İşlemler için kullandığın kodu paylaşmadan nerde hata olduğunu bulmak zor.
Re: Datasnap ikinci kez sorgu çalışmıyor..
Edit'e girdiğimiz değer ile sorgu sonucu stringgrid'e listeleniyor. Buraya kadar sorun yok. Edit'e yeni bir değer girip buton tıklanınca
sonuç yok. Server tarafında 'Bağlantı geldi' deyip kalıyor. Sanki ilk sorgudan sonra connection'ı sıfırlayıp yeniden açamıyor gibi.
Kod: Tümünü seç
function BaglantiSagla( strIpAddress, strPortNo, strDesktop_ServerMethodClassName, strDesktop_ClientDataSetProviderName :String ): boolean;
begin
Result := False;
Try
if xSQLConnection = nil
then xSQLConnection := TSQLConnection.Create(nil);
xSQLConnection.ConnectionName := 'DataSnapCONNECTION';
xSQLConnection.DriverName := 'DataSnap';
xSQLConnection.Params.Values['HostName'] := strIpAddress;
xSQLConnection.Params.Values['Port'] := strPortNo;
xSQLConnection.Params.Values['DriverUnit'] := 'Data.DBXDataSnap';
xSQLConnection.Params.Values['CommunicationProtocol'] := 'tcp/ip';
xSQLConnection.Params.Values['DatasnapContext'] := 'datasnap/';
xSQLConnection.Params.Values['CharacterSet'] := 'utf8';
xSQLConnection.LoginPrompt := False;
xSQLConnection.Connected := True;
if xDSProviderConnection = nil
then xDSProviderConnection := TDSProviderConnection.Create(nil);
xDSProviderConnection.SQLConnection := xSQLConnection;
xDSProviderConnection.ServerClassName := strDesktop_ServerMethodClassName;
xDSProviderConnection.Connected := True;
if xClientDataSet = nil
then xClientDataSet := TClientDataSet.Create(nil);
xClientDataSet.RemoteServer := xDSProviderConnection;
xClientDataSet.ProviderName := strDesktop_ClientDataSetProviderName;
xClientDataSet.Active := False;
Result := True;
Except
End;
end;
procedure THeaderFooterForm.btn9Click(Sender: TObject);
var
c:Integer;
r:Integer;
bak:Currency;
begin
bak:=0;
if BaglantiSagla( Edit1.Text, Edit2.Text, 'TServerMethods1', 'DataSetProvider1' ) then
begin
With xClientDataSet do
begin
Active := False;
With TStringList.Create do
begin
Clear;
Add('SELECT plaka, musno, saseno from BULUS_AND_KABUL where plaka LIKE :A or musno like :b or saseno like :c');
CommandText := Text;
Free;
end;
Params[0].Value:='%'+edt2.Text+'%';
Params[1].Value:='%'+edt2.Text+'%';
Params[2].Value:='%'+edt2.Text+'%';
Active := True;
str.RowCount:=1;
c:=0; r:=0;
str.Columns[0].Header:='Plaka';
str.Columns[1].Header:='CariKod';
str.Columns[2].Header:='ŞaseNo ';
while NOT EOF do
begin
str.Cells[c,r]:=FieldByName('plaka').AsString;
str.Cells[c+1,r]:=FieldByName('musno').AsString;
str.Cells[c+2,r]:=FieldByName('saseno').AsString;
c:=0; r:=r+1;
str.RowCount:=str.RowCount+1;
Next;
end;
Active := False;
Free;
xSQLConnection.Close;
xSQLConnection.Connected:=False;
end;
end;
end;
Erbab-ı kemâli çekemez nakıs olan, rencide olur Dide-i Huffaş ziyadan....
Re: Datasnap ikinci kez sorgu çalışmıyor..
Sorunun sebebini buldum gibi. Verileri sorgu sonucu stringgrid'de listeliyorum. Listbox'a çevirince düzeldi. Stringgrid'de mi hata var yoksa ben mi yanılıyorum, üstadlar bir yorum yaparsa sevinirim.
Erbab-ı kemâli çekemez nakıs olan, rencide olur Dide-i Huffaş ziyadan....