mustafau Posted October 20, 2016 Posted October 20, 2016 merhaba, unigui deniyorum.. mysql ile bir basıt cari modul yaptım. standalone server ornegin a kullanıcısı web den 8077 den tıklıyor. main menu acılıyor. kendi şirket kodunu, kullanıcı adını ve şifresini yazıyor. sisteme giriyor. sorun yok. sorun b kullanıcısı aynı pc yada başka ip ve makineden giriş yapsın farklı şirket kodu , kulalnıcı adı ve şifresi ile girdiğinde bu sefer ilk gireninde şirket kodu, kullanıcı adı değişiyor. cünkü main de ben bunları sirket,kullanıcı gibi string değişken oluşturdum ve tamama basınca değerleri atatım. uniconnection lar mainmodel de, hatta servermodel de de koyup denedim. UniMainModule.UniConnection1.Disconnect; UniMainModule.UniConnection1.Server:=host; UniMainModule.UniConnection1.Database:=data; UniMainModule.UniConnection1.Username:=user; UniMainModule.UniConnection1.Password:=pass; UniMainModule.UniConnection1.Port:=port; UniMainModule.UniConnection1.Open; uniquery im ve string değişkenler main de. function MainForm: TMainForm; var sirket,kullanici:string; dolayısyla a firması yada kullanıcısı tak diye b firmasının carilerini görüyor. yada aynı şirket ve user olmadığında yetkiye takılıyor. giriş yapamıyor. sankı unigui tek kullanıcının kullanması için tasarlanmış. aynı exe- port üzerinde farklı yetki yada değişkene göre işlem yapamıyor. yada nerde hata yapıyorum Quote
alucard Posted October 20, 2016 Posted October 20, 2016 Dediğin sıkıntıyı bende yaşamıştım. datasetleri server module koyunca dediğin gibi oluyordu. ancak mainmodule üzerinde gayet rahat çalışıyor. belki kullandığın sürümle ilgili olabilir. keşke kullandığın sürümü ve trialmi yoksa promu olduğunu da yazsaydın. Quote
mustafau Posted October 20, 2016 Author Posted October 20, 2016 Unidac , xe8 ve 0.99.80 trial kullanıyorum. sorunun trial yada sürümden değilde atladığım farklı bir ayardan kaynaklandığını düşünüyorum... mainmodule e UniConnection1 ,MySQLUniProvider1,UniTransaction1 koydum. main de uniQuery1 var. değişkenleri yanı function MainForm: TMainForm; var sirket,kullanici:string; hem main de hemde mainmodule de ayrı ayır denedim. olmadı. tamam buttonuna basınca UniConnection1 bağlanıyor. bunda sorun yok. sonra kullanıcı kontrolu yapıyor. sorun yok. şirket kodunu uniedit1 e yazıyor. kullanıcı adınıda uniedit2 e yazıyor. sonra bunları diğer formlarda kullanmak adına sirket:=uniedit1.text; kullanici:=eviedit2.text; şeklinde atıyorum. dediğim gibi unigui ye biri bağlandı. sorun yok. ama başka biri farklı sirket ve kullanici ile bağlandığında yanı sirket ve kullanıcı değişkenlerine değer yeni olarak atandığında sorun cıkıyor. eskiden acanında sirket ve kullanıcısı bir anda değişiyor. kim son girmişse onun girdiklerini getiriyor. acaba değişkenleri faklı bir yerde mi tanımlamak lazım. yada nedir sorun. Quote
Freeman35 Posted October 20, 2016 Posted October 20, 2016 global değişken kullanırsanız, bu sorunla karşılaşmanız normal. Session konusuu incelemizi öneririm. Ve global değişken kullansanızda sessionlara bu tanımlamalarınızı yapmalısınız. Bende acemiyim unigui de ve web e de hiç alışık değilim. unigui herne kadar delphi de yazılıyor olsada bir framework ve çalışma ortamı gerçekte web. session ı delphide her kullanıcıya yeni bir transaction gibi düşünün. ana işlem bloğu da diyebilirsiniz. Bu yüzden özellikle bir işlem grubunda, yani kullanıcı oturum açtığında, kullanacağı değişkenleri class ların private kısımlarında tanımlamanızı tavsiye ederim. Sirket ve kullanıcı değişkenlerini mainmodule ün class ına ekleyip deneyin. Quote
mustafau Posted October 20, 2016 Author Posted October 20, 2016 epeyce araştırdım sizde yazarken aslında çözümü bulduk. şu makaleden yararlandım. http://forums.unigui.com/index.php?/topic/6765-mainform-global-variable-define/?hl=mainmodule main de public altında değişkenleri tanıttım. yanı ...... public { Public declarations } sirket,kullanici:string; end; tabii diğer formlarda main i uses e ekledim. ayrıca değişkenleri çağırırkende sirket yerine TMainForm(MainForm).sirket şeklinde kullandım. UniConnection1 mı mainmodule koydum. main yanı login ekranında bağlantı için .... unimainmodule.UniConnection1.open;. şeklinde kullandım. şuan sorun ortadan kalktı.. Quote
Freeman35 Posted October 20, 2016 Posted October 20, 2016 TMainForm(MainForm).sirket Bu şekilde cast etmenize gerek yok, MainForm.Sirket şeklinde public edilmiş değişken, function vs kullanmanız için yeterlidir. Quote
Administrators Farshad Mohajeri Posted October 20, 2016 Administrators Posted October 20, 2016 public { Public declarations } sirket,kullanici:string; end; Bunu MainForm'da değil, MainModule'da yapınız. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.