Jump to content

Ms Sql Veya Ms Access ' De Update Işlemi


ates_bey
 Share

Recommended Posts

Merhaba TnC Tr üyleri

Sivas Çedaş'a bir borç takip programı yazıyorum Delphi 7 ile.
Bütün sorgulama,kaydetme ve takip işlemlerini tamamladım.
Fakat bir eksiğim var.

Abone.Net ' i aranızda duyanlar vardır.
Abone.Netten aylık olarak kalıntı fatura listesi veriliyor.Merkez köyler dahil yaklaşık 320.000 abone var.Bu kalıntı listesinde ise 70.000 gibi bir abone sayısı oluyor ve Excel ile çıktısı alınıyor.
Benim sizden yardım istediğim nokta şu !
Şu anda 7. ayın kalıntı fatura listesini aldık ve bu listenin içinde 55 bin küsür borcunu ödemeyen abone var.
Örn : Mahmut KAYA - ENERJİ KESİK
Bir sonraki ayın yani 8. ayın kalıntı fatura listesi'nin çıktısı alındığı zaman diyelimki aynı şekilde yine aynı abone borcunu ödemedi diyelim yani ;
Örn : Mahmut KAYA - İCRAYA SEVK EDİLDİ (bir sonraki ay icraya sevk edilmiş olarak geliyor.)

[b]ZURNANIN ZIRT DEDİĞİ YER İSE BURASI :)[/b]

[b]Access veya Mssql 2005 fark etmez hangi yolu gösterirseniz onda yapacağım.;[/b]
7. ay kalıntı fatura listesinde ve 8. ay kalıntı fatura listesinde aynı aboneler mevcut olacak ve yeni abonelerde olacaktır muhtemelen.
Yani durum şundan ibaret;
Ben bir sabit veri tabanı oluşturacağım bu veri tabanının içerisine ilk olarak 7. ayın listesini veri tabanına import edeceğim ve bir sonraki ayın listesini veri tabanına import ettiğimde [b]yeni alan açmaktansa aynı isimde bulunan abonelerin üzerine yazacak.[/b]Bunu nasıl yapabilirim yaptığım ilk resmi iş olacak ! Yardımlarınızı bekliyorum.

Link to comment
Share on other sites

[size="4"][b]UPDATE[/b][b] urun [/b][b]SET[/b][b] ADI='AAAA',MARKA='BBBB' [/b][b]WHERE[/b][b] [/b][b]BARKOD=11[/b][b]
[/b][b]bu kodu kullanabilirsin[/b][b]
[/b][b]mantıgı:barkod numarası 11 adı aaa olan markasıı bbb olan urunu güncelle bunu kullanabilirsin mssql2008 [/b][/size]

Link to comment
Share on other sites

[quote name='PoweredByAbdullah' date='22 July 2011 - 19:05 ' timestamp='1311361524' post='1050148']
[size="4"][b]UPDATE[/b][b] urun [/b][b]SET[/b][b] ADI='AAAA',MARKA='BBBB' [/b][b]WHERE[/b][b] [/b][b]BARKOD=11[/b][b]
[/b][b]bu kodu kullanabilirsin[/b][b]
[/b][b]mantıgı:barkod numarası 11 adı aaa olan markasıı bbb olan urunu güncelle bunu kullanabilirsin mssql2008 [/b][/size]
[/quote]

PoweredByAbdullah teşekkür ederim fakat aradığım yanıt bu değil.Bu sadece 1 satır için geçerli olacaktır.ben binlerce aboneden bahsediyorum Abdullah bey :)

Düzenleme : Ayrıca ben isim belirlemeyeceğim o aynı olan değerleri bulup üzerine yazacak. :)

Edited by ates_bey
Link to comment
Share on other sites

Hmm şimdi anladım. Eğer sen eski verilerin üstüne kayıt yaparsan geçen ayın verileri silinecektir. bu nedenle her ay yine insert intoyla ekletip veriyi çekerken kullanıcının eklenen en son tarihteki kaydını çekebilirsin. Böylece eski kayıtlarda silinmemiş olacaktır ve borçların toplamınıda kolayca alabilirsin.

Link to comment
Share on other sites

Hoca mesaj yazdı arkadasım bana yazdıgını aynen iletiyorum sana
[quote][color=#333333]şimdi çözüm şöyle olmalı birinci liste bir tabloda 7.ay, ikinci site bi tabloda 8. ay bu iki tablo bi fonksiyon ile 7. ay tablosunda birleştirilecek kayıtlar abone numarasının aynısı varsa update yani güncelleme yok ise insert yani kayıt edilecek. bu şekilde kolayca yapabilir.[/color][/quote]

Link to comment
Share on other sites

[quote name='galetis' date='22 July 2011 - 20:04 ' timestamp='1311365051' post='1050206']
Hmm şimdi anladım. Eğer sen eski verilerin üstüne kayıt yaparsan geçen ayın verileri silinecektir. bu nedenle her ay yine insert intoyla ekletip veriyi çekerken kullanıcının eklenen en son tarihteki kaydını çekebilirsin. Böylece eski kayıtlarda silinmemiş olacaktır ve borçların toplamınıda kolayca alabilirsin.
[/quote]


galetis hocam şimdi şöyle bir durum var eğer geçen ayki tablo'da ve son gelen tabloda aynı abone var ise üzerine yazacak eğer yok ise yeni bir satır açıp kaydedecek.tabi bunu otomatik bir sorguya bağlamak gerekecek.


[quote name='PoweredByAbdullah' date='22 July 2011 - 20:05 ' timestamp='1311365106' post='1050208']
Hoca mesaj yazdı arkadasım bana yazdıgını aynen iletiyorum sana..

[color=#333333][font=verdana, tahoma, sans-serif][size=2]şimdi çözüm şöyle olmalı birinci liste bir tabloda 7.ay, ikinci site bi tabloda 8. ay bu iki tablo bi fonksiyon ile 7. ay tablosunda birleştirilecek kayıtlar abone numarasının aynısı varsa update yani güncelleme yok ise insert yani kayıt edilecek. bu şekilde kolayca yapabilir.[/size][/font][/color]

[/quote]


ilgin için çok teşekkür ederim.tabiki mantık bu ama bunu yapabilecek komut lazım :)

Link to comment
Share on other sites

İmport işlemini nasıl yapıyorsun bilmiyorum ama delphi tarafından döngü ile satır satır yapıyorsan şu kodla kontrol edebilirsin:

UPDATE Tablo SET (...) WHERE aboneno=import_edilen_abone_no
IF @@ROWCOUNT=0
INSERT INTO Tablo VALUES (...)

Link to comment
Share on other sites

ams de yaparım ben bunu ama delphi bilmiyorum.

import edilecek ve import edilen db fetch edilir.
while döngüsü yaparak if şartlandırması eklenir, satirdaki 1. veri isim olsun diyelim eğer import edilen veri ile isim den fetch edilen veri aynı ise update komutu devreye girer, değilse insert into ile yeni satir eklenir basitçe mantık bu. Kolay aslında mantığı kavrarsan hemen yaparsın tüm dillerde bu mantıkla sonuca ulaşırsın diye tahmin ediyorum

Link to comment
Share on other sites

[quote][color=#333333]cursor kulması gerek cursor bu iş için ona yeter yada araya program yazması lazım bi tablodan alıp diğerini kontrol edecek bi program.[/color][/quote]
hocam bunu yazdı tabi ben bu seviyeye gelmedim ögrenirken anlamadım :D

Link to comment
Share on other sites

[quote name='KintaRo' date='22 July 2011 - 21:08 ' timestamp='1311368881' post='1050254']
ams de yaparım ben bunu ama delphi bilmiyorum.

import edilecek ve import edilen db fetch edilir.
while döngüsü yaparak if şartlandırması eklenir, satirdaki 1. veri isim olsun diyelim eğer import edilen veri ile isim den fetch edilen veri aynı ise update komutu devreye girer, değilse insert into ile yeni satir eklenir basitçe mantık bu. Kolay aslında mantığı kavrarsan hemen yaparsın tüm dillerde bu mantıkla sonuca ulaşırsın diye tahmin ediyorum
[/quote]

evet kintaro hocam dediğin gibi mantık bu.programın ara yüzünü delphi ile yaptım MSSQL kullanarak veri tabanını yaptım.inşallah bu mantığı koda dökebilirim :)
ams hiç kurmadımda denemedimde ne yalan söliyim :) Delphi baya bi işimi görüyor benim tek can sıkan taraf sql'de binlerce aboneyi otomatik olarak tarayıp aynı verileri üzerine güncellemesi :)

[quote name='PoweredByAbdullah' date='23 July 2011 - 00:48 ' timestamp='1311382113' post='1050311']
hocam bunu yazdı tabi ben bu seviyeye gelmedim ögrenirken anlamadım :D
[/quote]

eyvallah Abdullah biraz araştırmak lazım bu cursor olayını :)

Edited by ates_bey
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...