Verinin bir kısmının güncellenmesi

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Verinin bir kısmının güncellenmesi

Mesaj gönderen pro_imaj »

Merhaba
Arkadaşlar.
Şöyle birsorunum var

veritabanında Dosya adi diye bir alan var burada rapor dosyalarının nerede olduğu tutuluyor
örn
\\ANASERVER\GUNES4\RAPORLAR\Stok_Depo Durum Raporu.tel
\\ANASERVER\GUNES4\RAPORLAR\Stok_Depolar Arasi Transfer Fisi Alt Raporu.tel


ben yukarıda \\ANASERVER\GUNES4 sadece bu kısmı istediğim şekilde değiştirmek istiyorum diğer şeylere karışmak istemiyorum sizinde yukarıda gördüğünüz gibi sabit olmadığı için.

Acaba update gibi bişey ile nasıl yapabilirim acaba.

Aşağıdaki kodu kullanıyorum ama oda hata veriyor

Kod: Tümünü seç

SELECT right (DosyaAdi, len (DosyaAdi)-11) from DBO.RPR
update DBO.RPR set DosyaAdi='C:\'+right (DosyaAdi,len (DosyaAdi)-11)
hata msj
Invalid length parameter passed to the substring function.
Invalid length parameter passed to the substring function.
The statement has been terminated.

teşekkür ederim.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

merhaba

aşağıdaki kodu yazıyorum

Kod: Tümünü seç

select right ( DosyaAdi, len(DosyaAdi)+2 ) from rpr 
update rpr set DosyaAdi='ugur'+right (DosyaAdi,len (DosyaAdi)+11)
ama bu seferde direk olarak verilerin başına 'uğur' diye ekliyor. :(
bunu nasıl düzeltebilirim yani ben istediğim karakteri sildirip yerine istediğim veriyi yazabilirim. tşk ederim
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
onaydin

Mesaj gönderen onaydin »

replace fonksiyonu vardır onu kullanırsınız
replace(alan,'aranan','yeni_deger')
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

merhaba
Allah (cc) şükürler olsun ki sonunda oldu

Kod: Tümünü seç

RprQuery.Close;
RprQuery.SQL.Clear;
RprQuery.SQL.Add('update rpr set DosyaAdi='''+EkleEdit.Text+'''+right (DosyaAdi,len (DosyaAdi)-'+SilEdit.Text+')');
Memo1.Lines.Add  (RprQuery.SQL.Text);
Query1.Open;
yuukarıdaki kod ile veri tabanındaki bilgiyi istediğim şekilde güncellemeyi başarıyorum :( yalnızca enterprice maneger ile

Delphi ile bunu yapmaya çalıştığımda

Error create cursor handle mesajı veriyor.

yukarıdaki kod ile dönene sonuç
update rpr set DosyaAdi='mehmet'+right (DosyaAdi,len (DosyaAdi)-12)

query ile update işlemi yapalamazmı yoksa bu konuyu bilmiyorumda.

Yardımcı olursanız sevinicem.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba @onaydın hocam.
replace fonksiyonun kullanışını yazmışsını ama

replace(alan,'aranan','yeni_deger')

alan:= bu kısma vtyimi yoksa alanımı yazıcam.
ikiside hata verdide.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

yaptım onaydın hocam tşk ederim.

Kod: Tümünü seç

SELECT replace(DosyaAdi,'mehmetttttttttttttt','aLİ') FROM RPR
where not DosyaAdi =''
üstad ben böyle yaptım güzelde çalışıyor
ama bu sadece gösteriyor vt ye işlemiyor.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
onaydin

Mesaj gönderen onaydin »

Kod: Tümünü seç

update RPR set DosyaAdi = replace(DosyaAdi,'mehmetttttttttttttt','aLİ') where .....
mssql server kullanmışlığım yoktur, yanlış kullanımı sonucu ortaya çıkacak sorunlarda sorumluluk kabul etmem :lol:
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Sayın @onaydın hocam

tüm verilerim gitti bunun sorumluluğu size aittir işyerinden çıkışımı verdiler elimdeki kağıtla yanınıza geliyorum :D

Merhaba Öncelikle süper cevaplarınız için tşk ederim. ama dediğim gibi sinin yaptığınız işlem sadece ekrana listeliyor yani görünümde değişiyor veri tabanını yenilediğimde yaptığım işlemleri göremiyorum.

ama ben sorunu şu şekilde Allah (cc) izniyle hallettim.

Kod: Tümünü seç

procedure TAnaForm.SpeedButton1Click(Sender: TObject);
begin
try
RprQuery.Close;
RprQuery.SQL.Clear;
RprQuery.SQL.Add('update rpr set DosyaAdi='''+EkleEdit.Text+'''+right (DosyaAdi,len (DosyaAdi)-'+SilEdit.Text+')where Dosyaadi <>''''');
RprQuery.ExecSQL;


ListeQuery.Close;
ListeQuery.Open;
except
showmessage ('Eksik Yada Hatalı Bilgi Girişi Yaptınız !!!');
end;
end;
end.
Sorunum çözüldü.
Sorunda şuymuş; Ben RprQuery.Open; kullanıyordum aslında RprQuery.ExecSQL; kullanmam gerekmiş. bir şey daha öğrendik. ne güzel.

Sağlıcakla kalın... :D
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla