ağ bağlantısı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

ağ bağlantısı

Mesaj gönderen bobasturk »

Merhabalar;

Local olarak hazırladığım programımın çalıştığımız yerde diğer bilgisayarda çalışmasınıda istiyordum. Bi deneme yapmak istedim. Kullandığım fb/ib dir. DB dosyaları hariç tüm dosyamı diğer bilgisayara taşıdım diğer bilgisayarda yani server olarak kullanacağım bilgisayarda her şey kurulu.

terminal bilgisayardaki formlarda ibdatabase nin databasename deki d:\OlayYeriIncBrProjesi\Veri Deposu\DATA.FDB olan yolunun başına server bilgisayarın ağdaki adı olan Olayyeri002: ibaresini ekledim ve ibdatabase bileşeninin çift tıklayarak test ettiğimde bağladı gerekli diğer ayarlamaları (generator) yaptıtan sonra baktımki terminal bilgisayarda bayağı çalışıyor veriler aynı anda işlenip sorgulanabiliyor. Sadece ağın hızına göre birraz serverdekinden yavaş çalışıyor.

bu çalışmamda (server üzerindeki) form üzerinde istenildiğinde fotoğrafları göstermem için bi butonum var ve jpg fotoğrafları proje içindeki ayrı bi dosyadan alıyor kodu ise

Kod: Tümünü seç

procedure TFormArsiv.BitBtn3Click(Sender: TObject);
begin
  if fileexists('d:\OlayYeriIncBrProjesi\Resim Dosyaları\'+ibdataset1.fieldbyname('CERAIMNO').AsString+'.jpg') then
  begin
  image1.Picture.LoadFromFile('d:\OlayYeriIncBrProjesi\Resim Dosyaları\'+ibdataset1.fieldbyname('CERAIMNO').AsString+'.jpg');
  end
  else
  begin
  if not fileexists('d:\OlayYeriIncBrProjesi\Resim Dosyaları\'+ibdataset1.fieldbyname('CERAIMNO').AsString+'.jpg') then
  showmessage('Şahsın Resmi Kayıtlarda yok!!!');
  end;
end;
şeklinde. burada ki sorunum bu dosya yolunun başına ağdaki server olarak kullandığım ''Olayyeri002'' ibaresini verebilmek. yoksa terminal bilgisayar içine de fotoğraf dosyasını oluşturmalıyım buna fotoğrafların güncellenmesinde iki iş demek. çeşitli yollardan ağda yolu bağlamayı denedim fakat fotoğraf olduğu halde fotoğrafı yok diye mesaj karşıma geldi.

sanırım ağ yolunu tam olarak belirtemiyorum veya ağda bu fotoğrafı çekip alamıyorum.

sorum yurakıdaki koddaki dosya yolunun başına ağ yolunu nasıl eklemeliyi?

ağ yolunda bu jpg fotoğrafı çekme sorunu olabilirmi?.güç bakımından.

ağda diğer bilgisayara normal olarak bağlandığımda \\Olayyeri002\olayyeri-d\........... şeklinde dosyalara erişebiliyorum.

uzun ve karışık oldu heralde
teşekkür ve saygılarla
DotCom
Kıdemli Üye
Mesajlar: 1696
Kayıt: 11 Tem 2003 10:30
Konum: İzmir
İletişim:

Mesaj gönderen DotCom »

böyle bir durum ile karşılaşsaydım şunu yapardım. ;

birinci server daki foro ların oldugu dizine sanal sürücü oluştururdum. atıyorum H diye bir sabit disk oluştururdum ,

bunu naasıl yapacaksın , aslında dosya subst isminde bir komut var yapacağın şu ,

diyelimki resimlerin server da d:\OlayYeriIncBrProjesi\Resim Dosyaları\

dizininde ,

o makinede autoexec.bat dosyası içine şu satırları ekle ,

c:\subst h: d:

bu koddan sonra senin serverının Bilgisayarıma baktıgında H isminde bir sürücü oluştugunu görüceksin , üzerine çift tıklayınca d sürücünün aynısının oldugu dizini görüceksin ,

şimdi ana makinede program içinde resimleri d üzerinden degilde H üzerinden H:\OlayYeriIncBrProjesi\Resim Dosyaları\ şeklinde göster,

server üzerinde d ye paylaşım ver , terminalde ise server üzerindeki d sürücüsüne sağ tıkla ağ sürücüsüne bağlan de ve sürücü ismi olarak H seç , şimdi terminalde bilgisayarıma gir bak orada H siye bir sürücü var server gibi ve içine giridğinde resimlerini görüceksin.

artık server daki exe yi çalıştırdıgında terminal de , resimlerde hiç bir problem yaşamıcaksın.

walla adım adım anlattım umarım bir problem yaşamazsın. ve bu şekilde tek yerden resimleri güncellemen yeticek yani server dan ,

kolay gelsin.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustam,

gerçekten tüm incelikleri ile anlatmışsın fakat cahilliğime ver autoexec.bat dosyasını nasıl açacağımı bilmiyorum, işin doğrusu başıma olmucak işler almıyayım diye bu tür dosyaları, windos ortamlarını, keylocal kısımlarını vs vs karıştırmadığımdan yabancı geliyor. gerisini anladım.

teşekkür ve saygılarla
DotCom
Kıdemli Üye
Mesajlar: 1696
Kayıt: 11 Tem 2003 10:30
Konum: İzmir
İletişim:

Mesaj gönderen DotCom »

bilgisayarıma gir , c ye gir orada görüceksin tabiki win9x bir sistem kullanıyorsan

xp ve 2000 kullanıyorsan , bilgisayarın açılışına yani startup a bir bat dosyası oluşturup bu şekilde yapman daha uygun olur.

kolay gelsin.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustam xp prof kullanıyoruz. Heralde bişi daha öğrenip bi yaşımıza daha giricez
DotCom
Kıdemli Üye
Mesajlar: 1696
Kayıt: 11 Tem 2003 10:30
Konum: İzmir
İletişim:

Mesaj gönderen DotCom »

yaşla alakası yok sanırım , bu öğrendiklerin tecrübe olsa gerek.

eğer hala takıldıgın yerler olursa seve seve yardımcı olurum. kolay gelsin.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Kod: Tümünü seç

if Copy(Database1.DatabaseName,2,1)<>':' then begin
......
Bu sana Database Path inin local olmadığını yada bir sürücü harfi olmadığını bulmana yarar. Bu if bloğunun içine girdiğinde Client olarak çalıştığına göre işlem yapacaksın. Yani

Kod: Tümünü seç

Path = IBDatabase.DataBaseName;
Path = '\\'+Path;
while pos(Path,':')>0 do begin
  Path[pos(Path,':')] := '\';
end;
Path = ExtractFilePath(Path) + 'Resimler\'
(yazım hatası olabilr) bu kod : ları \ ile değiştirir ve sana sadece db nin olduğu path i döndürür. Resimleri de db nin olduğu yerin altında bir klasöre atarsın burdan resimleri yüklersin

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

freeman ustam,

buradan ilk şunu anlıyoum veya yanlış anladım, doğru program yapılışında local yapıldı ve setup halinde değil server olarak kullandığım bilgisayarda programın tüm kısımları var terminal bilgisayarda sadece db yok gerisi var database yolunu ağ yolu ile beraber verince sorunsuz çalıştı, program içindeki fotoğraf bulup gösterme yolu olan satır bi hata vermiyor fakat (yani dosya bulunamadı, ağ bulunamadı) gibi sadece fotoğraf olduğu halde şow mesajdaki mesajı veriyor.

Anladığım program içindeki kod ağ yolu veya pathi falan bulamıyo. ama öyle olduğunda hata mesajı vermesi lazım. mesajda yok sadece olan fotoğrafı yok diyor.

Resimler programın bulunduğu klasörün içinde ayrı bi klasör halinde ben buraya program kodu ile atmıyorum manuel olarak resileri photoshop ta işledikten sonra kopyala yapıştır yolu ile yükleyeceğim. Sadece kullanıcı programda görmek istediğinde butona basıp gösterecek.

freeman ustam cevabını heralde tam olarak anlayamadım, bu kanıya vardım özür diliyorum biraz daha açarmısın.

kolay gelsin.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Kod: Tümünü seç

if not fileexists('d:\OlayYeriIncBrProjesi\Resim Dosyaları\'+ibdataset1.fieldbyname('CERAIMNO').AsString+'.jpg') then
  showmessage('Şahsın Resmi Kayıtlarda yok!!!'); 
yukarıda yazdığın kodda hata alamazsınki. FileExists function ı o verdiğin dosyanın var olup olmadığına bakar. İngilizce öğrenmenin gereği burda çıkıyor işte FileExists Dosya mevcutmu diye tercüme edilebilir. sen bu dosya varmı diyorsun o sana yok diyor zaten :) hata döndürmezki. sen image içine yani loadfromfile -> dosyadan yükle dersen dosyayı bulamazsa ozaman hata döndürür.
Senin problemin resimlerin yolunda bir hata yapıyorsun. İlk mesajımda yazdığım daha doğrusu önerdiğim yol, IBDatabase üzerinden gitmek, yani programın local mi client mı olduğunu bulman gerek. Bunu bulduktan sonrada path ayarlamak sorun değil.

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustam,

burada heralde bi hatam var, çünki ben programı yapım aşamasında local olarak ayarladım ve oluşturdum. Halen daha server olarak kullandığım bilgisayarda lokal olarak ayarlı. Terminal bilgisayarda ise herhangi bir ayar çekmedim. Lokal veya client anlamında. Terminal bilgisayara koyduğum exe kısmının formlardaki ibdatabase name kısımlarını ağ yolu belirterek serverdeki program data sına bağlayıp ta program çalışınca oldu zannettim.

Heralde hatam buradan kaynaklanıyo. Bide fb/ibx ve delphi7 ile oluşturduğum programı setup haline dönüştüremediğimden(denemelerimde hata veriyor) iki bilgisayardada programın ham hali kurulu yani frebird+ibexpert+delphi7. hem böle durması iyi öğrendikçe bişeyler ekliyorum, çıkartıyorum, düzeltiyorum.

programdaki kodu sizin verdiğiniz şekilde deneme fırsatım olmadı, sadece burada anlayamadığım heralde biraz k.k. yim, yol da hata vermiyor, çalışıyor, olan fotoğrafı yok diyor. burada şaşırıyorum. Resimler dosyası, ne bileyim ağ yolu gibi şeyleri bulamıyorum dese anlıcam ama hata vermeden benim yazmış olduğum hata mesajını döndürüyor.

herhangi bir dosyayı normal şartlarda bilgisayar ortamında çalışırken açtığım dosya yolunu programdaki yola uyarlıyorum sonuç aynı.

ustam benim kafam karıştı bu yazdıklarımdan sizin niye karışmasın. ama sorunun üzerine gitmek gerek ve çözmek gerek yakışan bu.

teşekkür ve saygılarla
kolay gelsin
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

olc yazdı:yol da hata vermiyor, çalışıyor, olan fotoğrafı yok diyor. burada şaşırıyorum. Resimler dosyası, ne bileyim ağ yolu gibi şeyleri bulamıyorum dese anlıcam ama hata vermeden benim yazmış olduğum hata mesajını döndürüyor.
Önceki mesajımda bunu anlattım.Dosya adı nın içinde tam yolu ve adı var.

Kod: Tümünü seç

if not fileexists('d:\OlayYeriIncBrProjesi\Resim Dosyaları\'+ibdataset1.fieldbyname('CERAIMNO').AsString+'.jpg') then
  showmessage('Şahsın Resmi Kayıtlarda yok!!!');
yerine 
Resim_Dosya_adi := 'd:\OlayYeriIncBrProjesi\Resim Dosyaları\'+ibdataset1.fieldbyname('CERAIMNO').AsString+'.jpg';
if not fileexists(Resim_Dosya_adi) then
  showmessage(Resim_Dosya_adi + #13#10 + 'Şahsın Resmi Kayıtlarda yok!!!');
kullan ister breakpoint istersen showmessge ile bak bakalım Resim_Dosya_adi içinde ne var.

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustam, demek istediğini şimdi anladım. dedim ya biraz k.k. yiz ondandır.

anlat desen bilmem anlatabilirmiy ama anladım gibi, bi sorunum var buradaki

Resim_Dosya_Adi nı anlamadım bu proje içinde olan Resim Dosyalarını mı işaret ediyor.Bu nu gerçekten anlamadım.

teşekkürler ve hayırlı kandiller
dualarda unutulmamak dileği ile
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Kod: Tümünü seç


VAR 
   Resim_Dosya_adi : string; // variable (değişken)

begin
.........
if not fileexists('d:\OlayYeriIncBrProjesi\Resim Dosyaları\'+ibdataset1.fieldbyname('CERAIMNO').AsString+'.jpg') then
  showmessage('Şahsın Resmi Kayıtlarda yok!!!');

yerine

Resim_Dosya_adi := 'd:\OlayYeriIncBrProjesi\Resim Dosyaları\'+ibdataset1.fieldbyname('CERAIMNO').AsString+'.jpg';

if not fileexists(Resim_Dosya_adi) then
  showmessage(Resim_Dosya_adi + #13#10 + 'Şahsın Resmi Kayıtlarda yok!!!');
 
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustam,

onun bi değişken olduğunu anlamıştım ama söylemeyi unuttum mu utandımmı bilmiyorum. sizi yorduğum için özür diliyorum.baya zamanınızı aldım. bu konuda son bişi sormak istiyorum.

server bilgisayarda fb yi server olarak kuruyor ve registri olurken remote olarak ayarlayıp vt yi ib de gösteriyorum terminal bilgisayarda fb yi nasıl kurmalıyım son olarak bu gün fb yi ful olarak ve client olarak kurdum. kurulum esnasında hangi şekli ile kurmalıyım bi farkı varmı

tekrar teşekkürler ve kolay gelsin.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

forumu açma amacımız yardım etmek. Allah rızası içinde isteyenler yardım ediyorlar. Yani bu bir mecburiyet değil kişi kendi istediği için yapıyor.

Ben her yere yani terminallerede server kuruyorum. Zararı yok, belki memoryde biraz daha fazla yer kaybedersin. bu günkü sistemlerde 10 mb bile extradan kaybetse bunun pek bir önemi kalmıyor. Avantajı olarak gördüğüm tarafı, eğer server göçerse DB file ı sadece copy-paste ile başka bir makinaya kopyalayım sistemin çalışmasına devam ettirebiliyorum. extra bir ayar yada bişeyler yüklemeye gerek kalmıyor.

kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Cevapla