Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Pascal / Delphi / Delphi.NET

Cevapla
 
LinkBack Seçenekler
Eski 18/06/2008, 10:15   #1 (permalink)
Üye
 
necmettinaslan Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2008
Yer: Diyarbakır
Mesaj: 9
Mutsuz Vistada ADO ya neler oluyor

merhaba arkadaşlar,
XP ile gül gibi çalışan ADO database tabanlı bir programım var.
Vista testlerini yaparken tuhaf bir durumla karşılaştım. Şöyle ki, Vistada iki kullanıcı
oluşturuyorum. Programım tek veritabanı dosyası kullanıyor olmasına rağmen sanki iki kullanıcının girdikleri datalar ayrı dosyalara kaydediliyormuş gibi her kullanıcı sadece kendi girdiği datalara erişebiliyor. Network üzerinden yaptığım testte de Uzak kullanıcının yazdığı bilgilerin veritabanı dosyası boyutunda hiçbir değişiklik yapmadığını gördüm. Hiçbir hata oluşmuyor programı kapat aç veriler görünüyor ancak her kullanıcı sadece kendi girdiği verileri görebiliyor. Epeyce aradım ama veritabanı dosyamın bir kopyasını da bulamadım bilgisayarda. Vista benim bilmediğim başka bir yere her kullanıcı için veritabanı dosyamdan bir kopya çıkarıyor anladığım kadarıyla. Bu tuhaf sorunu çözmem için yardımlarınızı bekliyorum.
necmettinaslan hatta değil   Alıntı Yaparak Yanıtla
Eski 19/06/2008, 18:48   #2 (permalink)
Üye
 
Emrahgs Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 07/2005
Yer: Antalya
Mesaj: 324
Varsayılan

eğer
transaction kullanıyosan ado da böle bi sorun vaar
Emrahgs hatta değil   Alıntı Yaparak Yanıtla
Eski 20/06/2008, 10:06   #3 (permalink)
Üye
 
necmettinaslan Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2008
Yer: Diyarbakır
Mesaj: 9
Varsayılan

hayır transaction kullanmıyorum. XP ile her şekilde test ettim, böyle bir sorun yok. Google da da baya aradım cevap yok.
necmettinaslan hatta değil   Alıntı Yaparak Yanıtla
Eski 29/06/2008, 16:00   #4 (permalink)
Üye
 
Üyelik Tarihi: 03/2004
Mesaj: 105
Varsayılan Kastın mdbler mi?

merhaba vistada aslında ortak klasör diye bişey yok yani program files belgeler klasörü sanal yani senin gördüklerin sanal kısayollar.bunu galiba biryerde total commander gibi programlarla görebiliyorsun diye biliyorum.bence problem bunla ilgili ama sadece tahmin yürütüyorum.bunu bir araştır istersen.


kolay gelsin.
tayfundogdas hatta değil   Alıntı Yaparak Yanıtla
Eski 03/07/2008, 11:45   #5 (permalink)
Üye
 
Kelepçe Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 02/2007
Yer: Malatya
Mesaj: 5
Varsayılan

Hangi VTYS'yi kullanıyorsun? VTYS'de kullanıcı izinleri ile ilgili bir izin problemi var gibi. Ya da sorgulamanda.
Kelepçe hatta değil   Alıntı Yaparak Yanıtla
Eski 03/07/2008, 13:48   #6 (permalink)
Üye
 
necmettinaslan Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2008
Yer: Diyarbakır
Mesaj: 9
Kızgın neler oluyor

İlgilendiğiniz için çok tşk. lütfen devam edin çünkü hâla çözemedim bu sorunu.
ADO kullanıyorum, Access database ler üzerinde çalışıyorum. kullanıcı izinleri ile ilgili nasıl bir problem olabileceğini anlayamadım. programım auto login le (şifresiz) veritabanı dosyasını kullanıyor.
Bir örnekle tekrar anlatayım. C:\ de bulunan bir mdb dosyam var. vistayı Ali isimli hesapla açıp programımı kullanarak o dosyaya kayıtlar giriyorum. girdiğim kayıtları görüyorum, sorgulayabiliyorum, vs. hiçbir sorun yok. Ama Vistayı Veli adlı hesapla açınca aynı programla (ki program hep aynı veritabanı dosyasını açıyor) hiçbir hata almıyorum ama Ali nin girdiği kayıtları göremiyorum. yine Veli kullanıcısı olarak kayıt girebiliyor, kayıtları istediğim gibi sorgulayıp görebiliyorum. Ama bu kez de Ali oturumunda Veli kullanıcısının girdiği kayıtlar görünmüyor. Yani her vista kullanıcısı sadece kendi girdiği kayıtlar üzerinde işlemler yapabiliyor. Çok tuhaf gerçekten ama durum aynen böyle. Yardımlarınızın devamını bekliyorum.
necmettinaslan hatta değil   Alıntı Yaparak Yanıtla
Eski 03/07/2008, 15:28   #7 (permalink)
Üye
 
Üyelik Tarihi: 07/2008
Mesaj: 5
Varsayılan

Bende okul için yazdığım dersane otomasyonunda benzer bir sorunla kaşılaştım program XP den süper çalışıyodu vista da denedim MSADODC.OCX dosyasıyla ilgili bir hata mesajı verip açılmıyor internette aradım bulamadım

Not: Programın setup ını yapmıştım tüm OCX leri kendisi yüklüyor yani OCX eksikliğinden değil
youngprogrammer hatta değil   Alıntı Yaparak Yanıtla
Eski 19/07/2008, 21:45   #8 (permalink)
Üye
 
Kelepçe Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 02/2007
Yer: Malatya
Mesaj: 5
Varsayılan

Sorununuz Vista'nın UAC özelliğinden kaynaklanıyor. Yazma izni olmaadığından VT'nin bir kopyası kullanıcıya özel yerlerde saklanarak, kullanıcının yaptığı işlemler bu veritabanına kaydediliyor.
Kelepçe hatta değil   Alıntı Yaparak Yanıtla
Eski 24/07/2008, 10:57   #9 (permalink)
Üye
 
necmettinaslan Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2008
Yer: Diyarbakır
Mesaj: 9
Yukarı Vista-ADO-İşletim sistemi ve kullanıcı haklarını delphi kodlarıyla tespit edelim

evet, teşekkürler, ADO-Vista da farklı kullanıcıların aynı veritabanındaki kayıtları görememeleri ile ilgili sorun UAC tan kaynaklanıyor. UAC ı program kodlarıyla devre dışı bırakmak da mantıklı ve mümkün görünmüyor. Bunun için program içinde kullanıcıyı mutlaka uyarmak gerekiyor. Örneğin kullandığı işletim sistemi vista ise admin değilse bazı işlemleri yapamayacağı konusunda mesaj vermeliyiz. Bunun için kullandığım iki fonksiyonu sizlerle de paylaşayım:

1. XP ve Vistada kullanıcının admin yetkilerine sahip olup olmadığını test eden fonksiyon:


{------------------------------------------------------------------------------}

const
SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5)) ;

const
SECURITY_BUILTIN_DOMAIN_RID = $00000020;
DOMAIN_ALIAS_RID_ADMINS = $00000220;


function IsWindowsAdmin: Boolean;
var
hAccessToken: THandle;
ptgGroups: PTokenGroups;
dwInfoBufferSize: DWORD;
psidAdministrators: PSID;
g: Integer;
bSuccess: BOOL;
begin
Result := False;

bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True, hAccessToken) ;
if not bSuccess then
begin
if GetLastError = ERROR_NO_TOKEN then
bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hAccessToken) ;
end;

if bSuccess then
begin
GetMem(ptgGroups, 1024) ;
bSuccess := GetTokenInformation(hAccessToken,
TokenGroups, ptgGroups, 1024, dwInfoBufferSize) ;
CloseHandle(hAccessToken) ;

if bSuccess then
begin
AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, psidAdministrators) ;

for g := 0 to ptgGroups.GroupCount - 1 do
if EqualSid(psidAdministrators, ptgGroups.Groups[g].Sid) then
begin
Result := True;
Break;
end;

FreeSid(psidAdministrators) ;
end;

FreeMem(ptgGroups) ;
end;
end;

{------------------------------------------------------------------------------}

bu fonksiyonu örneğin
if IsWindowsAdmin Then
......
else
.....
şeklinde kullanabilirsiniz.


2. Kullanılan işletim sistemini tespit eden fonksiyon:

....
type TWinVersion = (wvWinXP, wvWinVista, wvUnknown) ;
.....

{------------------------------------------------------------------------------}
function GetWinVersion: TWinVersion;
var
osVerInfo: TOSVersionInfo;
majorVersion, minorVersion: Integer;
begin
Result := wvUnknown;
osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo) ;
if GetVersionEx(osVerInfo) then
begin
minorVersion := osVerInfo.dwMinorVersion;
majorVersion := osVerInfo.dwMajorVersion;
if osVerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then
begin
if (majorVersion = 5) and (minorVersion = 1) then
Result := wvWinXP
else if (majorVersion = 6) then
Result := wvWinVista;
end;
end;
end;
{------------------------------------------------------------------------------}

bu fonksiyonun kullanımına örnek:
if (GetWinVersion = wvWinVista) then
......


iki fonksiyonu beraber kullanalım:
(kullanıcı vista işletim sistemini kullanıyorsa ve admin haklarına sahip değilse
if (GetWinVersion = wvWinVista) and (IsWindowsAdmin = False) then
.......

umarım işinize yarar.
necmettinaslan hatta değil   Alıntı Yaparak Yanıtla
Eski 24/07/2008, 12:23   #10 (permalink)
Üye
 
Kelepçe Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 02/2007
Yer: Malatya
Mesaj: 5
Varsayılan

http://developersoven.blogspot.com/2...i-part_27.html
Kelepçe hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
Orada neler oluyor? Sahin Olumlu Sohbet 8 24/03/2008 00:37
foruma neler oluyor :S PHYSiCaL_MeM Ceviz.net Hakkında 2 10/12/2005 21:43
Bilgisayarıma Neler Oluyor e-MaLi Windows 23 22/06/2005 15:55
neler oluyor bize ? HiperAktif® Duyurular & İlanlar 4 21/02/2004 14:18
neler oluyor?? aBSoLuT-BuLL Hayata Dair 16 01/09/2003 10:17


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 17:18.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net