Hızlı sql kod(program)

Başlatan 91011, 04 Ağustos 2014 - 21:21:59

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

91011

Merhaba arkadaşlar,

Bu gün veri tabanı ile ilgili bir kayıt programı yapacaktım ama piyasa araştırması yapınca dükkan sahipleri istemedi :) bende vazgeçtim

Veri tabanımda iller ilçeler ve köyleri tutacaktım ama eklemek bayağı bir uzun sürecek gibi oldu bende kopyala yapıştır yapamayınca küçük bir program yazdım:



sağdaki textbox a verileri alt alta yazıyoruz yap butonunna tıkladığınızda size insert into vsvs hazırlamış oluyor, ben araştırdım biraz bulamadım bir kolay yolunu böyle birşey yaptım nasıl sizce yararlı bir şey mi ?*
Tanrı konuşmaz, şeytan fısıldar...

reber

Başlangıç olarak iyi olmuş.
Birinci aşama olarak text dosyasından , excel dosyasından vb.  formatlardan veri alma özellikleri olmalı.
İkinci  aşama olarak veritabanı sunucusuna uzaktan bağlanma ve üretilen insert cümlelerini post etme özelliği eklersen tam olacak.
Hatta bir çok kişinin hayır duasını alacaksın.

91011

#2
@reber teşekkürler, phpmyadmin kullanmıştım bu gün ona hazır kod yapmak içni yaptım, istediğin gibi yapabilirim ama onun için daha fazla ekleme yapılması gerekiyor, insert ten başka update de eklemek kullanışlı olabilir.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 05 Ağustos 2014 - 13:59:15

Ben şöyle bir bağlantı kurmaya çalışıyorum örneğin şöyle:

baglanti = new MySqlConnection("Server=http://örnek.com/ ;Database=database;Uid=user;Pwd='123';");


Bu bağlantıdan false değeri dödürüyor bağlanmıyor nerede yanlışlık var ?*
Tanrı konuşmaz, şeytan fısıldar...

sem

Server'da http olmamalı diye anımsıyorum. Server=örnek.com olarak deneyiniz.

Hızlı insert için genelde kopyala yapıştır kullanıyorum.

Şehir listesini ya da istediğiniz veriyi alt alta yazdığınızı düşünün. Bunu daha sonra bir tablo uygulamasına yani Excel muadili uygulamaya yapıştırın. Solundaki hücere

select '

ibaresini yapıştırın. Sağındaki hücreye ise 

' from dual union all
yazın. Sonra sağ ve soldaki hücrelerin en sağalt noktasını çift tıklayarak veriniz kadar çoğaltın. Burada dikkat edilmesi gereken from dual kısmı. Burası Oracle'a özel. bu ifadeyi kullandığınız veri tabanı yöneticisi sistemine göre revize edin.

Daha sonra boş bir metin dosyasına


insert into myTable values (column2)


yazıp tablo uygulamasında oluşturduğunuz metnin son versiyonunu buraya kopyalayıp yapıştırın. Daha sonra tab karakterlerini hiç bir şey ile yani \t karakterini "" ifadesi ile tümünü değiştir yapın.

1000 satırlık veri olsa da 100000 satırlık veri olsa da aynı sürede hazırlamış olursunuz.

Anlatınca uzun gibi dursa da el alışkanlığı ile beraber çok kısa süre içerisinde hazırlanabiliyor. Örneğin 1000 tane insert işlemi için yukarıdaki uygulama ile de ciddi anlamda zaman harcamak gerekecektir.

Bunlar dışında toplu işlem yani jargonda bulk process olarak geçen işlem yapmak mümkün değil mi?

Elbette mümkün. Sqlite'dan tutun da Oracle'a kadar tüm veri tabanı yönetim sistemlerin de bu işlemi yapmak mümkün.

1000000000 satırlık dosyayı örneğin Oracle'a yüklemek için genelde SQL Loader uygulama kullanılır. insert işlemin ve veri dosyasını ve diğer ayarları barındıran bir ctl dosyası hazırlayıp doğrudan Oracle'a bildirebilirsiniz ve satırlarınız insert edilmiş olur. Günümüzde DWH vs ya da ETL sırasında uzun sürecek işlemlerde dışarıdan SQL yazarak insert etmek yerine VTYS'nin kendi içsel (inhouse) çözümü kullanılıyor. Özellikle performans nedeni ile.

Örnek çalışma olarak güzel bir örnek tabi buna bir şey diyemem =).  Tabi kodları diğer arkadaşlar da görebilirse daha faydalı olacaktır. 

Elinize sağlık, iyi çalışmalar.
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

91011

#4
@sem, aslında programım sizinde işinizi kolaylaştıracak excel kullanmanıza gerek kalmayacak son halini şöyle:



ancak bir problem var resimde de görüldüğü gibi yap dediğim gibi oluşturduğu kodlar peşpeşe çıkıyor, halbuki ben sting e \n karakterini koyduğum halde satır satır çıkmıyor.

Ben zaten ilk başta mantık hatası yapmışım oraya bağlandığım databaseyi de eklemem gerekiyormuş aklım hep phpmyadmin girişine takıldı neyse bunu düzelttim ama hala veri işlerken işle dediğimde bağlantı bulamıyo bunu üstünde biraz kafa yormam gerekiyor.

Tanrı konuşmaz, şeytan fısıldar...

91011

#5
Devamını getiremedim veritabanı bağlanma kısmanda sıkıntı oldu uğraşmayacağım artık solution dosyası burada son halinin bakmak isteyen arkadaşlar olursa:

http://1drv.ms/1t9102C


burada da ilk halinin exe dosysı var:

http://1drv.ms/1t90H87


Tanrı konuşmaz, şeytan fısıldar...

sem

Sorunu anlayamadım tam olarak. Resimden de anlayamadım maalesef. 
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

91011

Şöyleki aslında bağlantı kurulabiliyor istersen bağlantı adını ve veritabanı adını gizleyebiliyorsun ancak ben, oluşturulan kodu veritabanına ekleyemedim, sorgularım çalışmadı, bir de Ben komutu yap dediğimde stringe "\n" satır atlama karakterini giriyorum ama aynı satırda çıkıyor komutlar bunu aşamadım.bu konuda daha önce okulda bir alıştırma yapmıştık o kadar.  O yüzden devamı gelmedi proje dosyasını paylaştım istersen bakabilirsin.

Tanrı konuşmaz, şeytan fısıldar...

sem

Devam etmek istecek olursanız elimden geldiğince yardımcı olmaya çalışırım. Sorgu çalışması biraz farazi kalıyor hiç durumu bilmeyince. Açıklama ve StackTrace bilgisi paylaşabilirseniz yardımcı olurum.

Ara yüz nedir? WPF mi yoksa standart .NET bileşenleri mi? TextBox nesnesi kullanıyorsanız eğer çoklu satırı varsayılan olarak desteklemez TextBox. İlgili property değerini true'ya çekmeniz gerekir: TextBox.MultiLine

http://msdn.microsoft.com/tr-tr/library/12w624ff(v=vs.110).aspx
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?