Jump to content

çoklu kullanıcıda sorun


mustafau

Recommended Posts

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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ı.. 
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...