Merhabalar;
bir sunucu üzerinde çalışan datasnapserver exesine android cihazlardan bağlanan clientim var.
server exesinin üzerine birkaç fonksiyon oluşturdum. mesela login için userid pswrd alıp değerleri mysql de sorgulatıp true veya false döndüren bir functionum var clientten girilen username ve sifreyi gonderdiğim zaman server exesi bu değerleri sorgulayıp dogruysa true yanlus ıse false döndürüyor. bende android clientte giriş yapıldı veya giriş başarısız işlemleri yaptırıyorum.
login yapan bir kullanıcının android clientten bir datayı fetch ettirmek istiyorum bunun mantığını oturtamadım.
aşağıdaki functionda yapmak istediğim parametre olarak aldıgım sql stringi qtmp querysi ile çalıştırıp result olarak döndürmek ve client tarafından alıp while ile döndürmek istiyorum(bir gride manuel yazdırıcam)
server tarafı function
function TServerMethods1.SelectSql(Sql: String): TDataSet;
begin
if ServerContainer1.qTmp.Active then
ServerContainer1.qTmp.Close;
ServerContainer1.qTmp.Sql.Clear;
ServerContainer1.qTmp.SQL.Add(Sql);
ServerContainer1.qTmp.Open;
Result := ServerContainer1.qTmp;
end;
aşağıdaki client tarafı procedure dede yukardaki functiona bir sql gönderip sonucu bir dataset üzerine alıp bunun üzerinden işlem yapmak istiyorum
client tarafı
procedure TfrmMain.Button1Click(Sender: TObject);
Var
Query : TDataSet;
begin
Query := ClientModule1.ServerMethods1Client.SelectSql('SELECT USER_ID FROM users ');
while not Query.EOF do
begin
Showmessage(Query.FieldByName('USER_ID').AsString);
Query.Next;
end;
end;
ama client tarafındaki bu kod çalısırken hata alıyorum desteklenmiyor gibi bir şey diyor.
yardımcı olabilecek var mıdır ?
xe5 datasnap mysql connection soru.
xe5 datasnap mysql connection soru.
En son tosturan tarafından 10 Ara 2015 07:22 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: xe5 datasnap mysql connection soru.
Function içi result dönen olarak TDataSet yerine TDataSource demişsiniz.
Uyumsuzluk olarak verdiği hata ondandır.
Keşke hatayı ctrl+c tuşlarına basıp buraya yapıştır yaparak yazsaydınız daha net olurdu.
Ben bu şekilde bir nesnel atama yerine direkt clientdataset kullanır aracıları ortadan kaldırırdım. Bkz. Bu linkteki örnek
Uyumsuzluk olarak verdiği hata ondandır.
Keşke hatayı ctrl+c tuşlarına basıp buraya yapıştır yaparak yazsaydınız daha net olurdu.
Ben bu şekilde bir nesnel atama yerine direkt clientdataset kullanır aracıları ortadan kaldırırdım. Bkz. Bu linkteki örnek
Re: xe5 datasnap mysql connection soru.
haklısınız orası tdataset idi fakat denemeler yaptım üzerinde datasource iken atmışım buraya dikkatsizlik
.
TDataset iken verdiği hata mesajı := "TDBXError with message 'Remote error: Internal: Type tkClassRef is not currently supported'.";
kullandığım component unidac uniquery result döndürüyorum.
birde server tarafında gelen sqlsonucunu xmldocument şeklinde oluşturup onu result dönmeyi. client tarafındada xml okuma yöntemi ile datayı elde etmeyi önerdi birisi bu yöntem sağlıklı olur mu. birden fazla arka arkaya oluşan requestlerde sunucu üzerinde çalışan exe bunları karşılamak xml oluşturup geri göndermek konusunda zorlanırmı. ram şişme vs olayları olur mu ?

TDataset iken verdiği hata mesajı := "TDBXError with message 'Remote error: Internal: Type tkClassRef is not currently supported'.";
kullandığım component unidac uniquery result döndürüyorum.
birde server tarafında gelen sqlsonucunu xmldocument şeklinde oluşturup onu result dönmeyi. client tarafındada xml okuma yöntemi ile datayı elde etmeyi önerdi birisi bu yöntem sağlıklı olur mu. birden fazla arka arkaya oluşan requestlerde sunucu üzerinde çalışan exe bunları karşılamak xml oluşturup geri göndermek konusunda zorlanırmı. ram şişme vs olayları olur mu ?