Excel Verilerinin SQL Server a Aktarımı Nasıl Yapılabilir?
thickreed15.06.2005 - 15:15:02
Herkese Merhabalar,

Excel Verilerinin SQL Server a Aktarımı Nasıl Yapılabilir? Daha doğrusu şuan yürütmekte olduğum projede (Sendika Üye Otomasyonu) SQL Server 2000 kullanıyorum. Proje bitti fakat son anda kullanıcılardan "Üyelerimizin Aidat Ödemeleri bize bi excel tablosu halinde zaten geliyor.Biz Excel tablosunu programa dahil edebilir miyiz?" gibi istekleri oldu. Bunu Delphi den yaptım. Fakat Verileri alan Query (örneğin 7000 kayıt) verileri alırken çok yavaş davranıyor(2-3 dk gibi). Bu işlemi SQL Server da manuel olarak yaptırdığımda çok hızlı oluyor. Sonuç olarak SQL Server bunu yaparken bi SQL komutu kullanıyor ve öyle işlem yapıyor. Araştırmalarıma rağmen pek başarılı olamadım. SQL Server ın Excel verisini almak için kullandığı SQL Komutunu yada bu işin mantığını bilen varsa yardımını acil olarak rica ediyorum.

Herkese teşekkürler.
 
mussimsek15.06.2005 - 15:22:27
Merhaba,

Arama sql server import
Arama sql server excel
Arama enterprise manager

gelen sonuçlardan birkaçını inceleyerek sonuca gidebilirsiniz. İlk aramada birkaç şey buldum mesela.

Kolay gelsin.
 
thickreed15.06.2005 - 19:57:18
Tekrar Merhabalar,

Mustafa Hocam ilginize çok teşekkür ederim.

sql server import
sql server excel
enterprise manager

gibi seçeneklerinizi aradım ve dediğiniz gibi bir sürü sonuç buldum. Fakat bunların çoğu Delphi üzerinden veriyi çekiyolar. Ben SQL Server da bu işi yapan bi SQL komutunun olabileceğini zannediyorum. Varsa da incelediğim örneklerde göremedim. Daha öncede dediğim gibi "ATTACH DATABASE" yada "BACKUP DATABASE" komutları gibi işte atıyorum "IMPORT_EXCEL_DATAS" yada benzer bi komutu SQL Server ın kullandığını zannediyorum.Çünkü manuel bu işi yapıyor.Bu komutu yada komutlar grubunu arıyorum.

Bu hususta bi dostum SQL Server da bi "Job" tanımlamamı ve daha sonra bu "job" ın SQL ine baktığım takdirde orada bulabileceğimi söyledi. Fakat JOb tanımlamakta sıkıntı çektim, işin aslı beceremedim.

Bu hususta başka bir fikriniz varsa yada yardım edebilirseniz sevinirim.


Kolay gelsin.
 
mussimsek16.06.2005 - 10:32:31
Merhaba,

SQL Server'ın çok gelişmiş import/export tool'u var. Database'e sağ tıkla, seçeneklerden import'u bul. Orda zaten sihirbaz seni yönlendirecek.

Şu an SQL Server kurulu olmadığı için tam seçenekleri söyleyemiyorum maalesef. Ama birkaç deneme ile çözersin.

NOT : yedek almayı unutma :)

Kolay gelsin.
 
thickreed16.06.2005 - 16:33:17
Merhaba mussimsek hocam;

"SQL Server'ın çok gelişmiş import/export tool'u var. Database'e sağ tıkla, seçeneklerden import'u bul. Orda zaten sihirbaz seni yönlendirecek."
demişsiniz.

SQL Server ın bu sihirbazını biliyorum ve birçok kere projelerim dahilinde veri aktarımı yaparken kullandım. Fakat bunu ben yapmıyacam, kulanıcı benim delphide yazdığım arayüzden bu aktarım işlemini yapacak.

Ama gene de insanın kendisine yardımcı olan birilerinin varlığını bilmesi güzel his doğrusu. Herşey için teşekkür ederim.

Bu hususta bana söylenen başka bi tavsiyeyi sizinle ve tüm forumdaki arkadaşlarla paylaşmak isterim.

Tavsiye şuydu;

Enterprise yi aç. import sihirbazında son noktaya gel ama "SON" u tıklama.SQL Server Profiler ı çalıştır. Sonra enterprise dönüp import işlemini başlat. Böylelikle Profiler de SQL Server ın kullandığı komutları gözlemleyebilirsin.

dendi ve bende öyle yaptım. Bana Profiler dan dönen 5 satırlık değerler şunlardı:

1)
exec sp_oledb_ro_usrname

2)
select collationname(0x1F04D00082)

3)
CREATE TABLE [UYE_TAKIP].[dbo].[Sayfa1$] (
[SICIL_NO] nvarchar (255) NULL,
[BRUT_UCRETI] float NULL,
[KESINTI_YUZDESI] float NULL,
[AIDAT_TUTARI] float NULL
)

4)
exec sp_bcp_dbcmptlevel [UYE_TAKIP] SET FMTONLY ON SELECT * FROM [UYE_TAKIP].[dbo].[Sayfa1$] SET FMTONLY OFF exec [UYE_TAKIP]..sp_tablecollations '[UYE_TAKIP].[dbo].[Sayfa1$]'

5)
insert bulk [UYE_TAKIP].[dbo].[Sayfa1$]("SICIL_NO" nvarchar(255) COLLATE SQL_Latin1_General_CP1254_CI_AS,"BRUT_UCRETI" float,"KESINTI_YUZDESI" float,"AIDAT_TUTARI" float)with(check_constraints)

şimdi bu adımları sırayla inceleyecem ki sonuca ulaşacağımı umuyorum.

Sanırım SQL Server bu işi yaparken sp_oledb_ro_usrname, sp_bcp_dbcmptlevel gibi stored procedurlerini kullanıyo.

Şimdi bunları inleyeceğim.

Herkese kolaylıklar diliyorum.
 
emrahkaraarslan01.07.2005 - 16:18:59
exceldeki verileri internette bulabileceğin bir convertewr programla access e çevirip daha sonra sql serverdan import etmeni tavsiye ederim bence direk excel kullanma bazen sorunlar çıkarabiliyor
 
kadirkurtoglu02.07.2005 - 11:48:37
merhaba thickreed. bu işi çözersen nasıl çözdüğünü yazarsan faydalı olacağına inanıyorum. çünkü bende bu konuda tablo aktarımlarında baya bir süre beklemem gerekiyor.. kolay gelsin...
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com