Bagaimana cara mengimpor data dari odbc ke excel?

Objektif

Saya memiliki data yang disimpan dalam database yang ingin saya impor menggunakan sumber data ODBC

Resolusi

  1. Jika Anda mengimpor dari Excel atau Access, pastikan perangkat lunak Microsoft, Leapfrog, dan versi driver ODBC Anda semuanya kompatibel. Misalnya, jika Anda menggunakan Microsoft office 32-bit, semua perangkat lunak lainnya juga harus 32-bit. Contoh berikut adalah untuk mengimport Excel. file xls. Unggul. File xlsx juga dapat diimpor, tetapi pastikan untuk memilih driver yang sesuai dalam petunjuk di bawah ini. Catatan. Agar driver ODBC mengenali semua tabel Anda (kerah, survei, interval), nama setiap lembar kerja harus dimulai dengan akhiran yang sama. Sebagai contoh. M-kerah, M-Assay, M-Geologi
  2. Siapkan driver ODBC. Di Windows 7, Anda dapat menemukan Administrator Sumber Data ODBC 32-bit di sini. (C. ) > Windows > SysWOW64 > odbcad32. exe. Klik dua kali file ini untuk membukanya
  3. Untuk menyiapkan driver ODBC Excel, pilih 'Tambah' untuk membuat Sumber Data Pengguna baru. Gulir ke bawah untuk menemukan driver yang tepat (dalam hal ini adalah Microsoft Excel Driver for. xls,. xlsx, dll. )
  4. Di jendela berikutnya, beri nama sumber data Anda (mis. Proyek Leapfrog), berikan deskripsi (jika diinginkan), dan ubah versi Excel, jika perlu. Pilih database dengan mengklik "Pilih Buku Kerja" dan temukan. file .xls
  5. Jika Anda memilih untuk menambahkan sumber data baru, Anda sekarang akan melihatnya di daftar sumber data. Untuk mengonfigurasi satu, pilih, dan klik "Konfigurasi". Klik OK untuk keluar
  6. Sekarang buka Leapfrog. Anda harus membuka Geo 32-bit jika Anda menggunakan driver ODBC 32-bit, dan Excel 32-bit. Buat proyek baru. Impor lubang bor melalui ODBC
  7. Sumber data yang digunakan adalah "File database". Di jendela yang muncul, lihat semua jenis file. Cari dan pilih. file .xls. Klik Ok untuk kembali ke jendela sumber data ODBC. Ubah tipe data menjadi File Excel. Klik Oke
  8. Pilih tabel kerah, survei, dan interval dari dropdown. Dengan asumsi setiap nama lembar kerja dimulai dengan awalan yang sama, Anda akan melihatnya dalam daftar. Klik OK dan lanjutkan mengimpor ke Geo seperti biasa

Catatan

  • Leapfrog sekarang hanya tersedia dalam versi 64-bit. MS Office dan driver masing-masing harus dalam 64-bit

 

Dapatkan lebih banyak dukungan produk

Lebih Banyak Dukungan

Terkait

Dengan ODBC, Anda dapat meringkas, dan memilih data yang Anda perlukan saja, di buku kerja Excel sebelum mengimpornya ke SQL Server. Anda dapat menggabungkan data dari berbagai area atau lembar kerja. Anda bahkan bisa mendapatkan data dari hasil pernyataan SQL Server SELECT ke dalam spreadsheet Excel. Phil Factor menunjukkan caranya, dan memperingatkan beberapa jebakan

Mengapa Menggunakan ODBC?

Cukup mudah untuk memasukkan data dari Excel ke dalam SQL Server, atau sebaliknya, dari database ODBC lainnya ke yang lain, menggunakan PowerShell. Arah yang paling penting tentu saja dari Excel ke SQL Server. Ini lebih cepat daripada mengotomatiskan Excel dan Anda dapat melakukannya tanpa memerlukan salinan Excel. Ini juga lebih rapi daripada SSIS, dan lebih serbaguna. Namun, yang paling penting adalah Anda dapat mengagregasi sebelum mengirim data. Dimungkinkan untuk melakukan banyak pemfilteran dan agregasi data sebelum masuk ke SQL Server, karena Anda dapat mengubah Buku Kerja Excel yang ada menjadi database relasional orang miskin, atau bahkan membuatnya. Artikel ini akan bertujuan untuk menunjukkan bagaimana hal ini dilakukan

Saya selalu merasa sedikit canggung berbicara tentang ODBC. Ini adalah teknologi Sekali dan Masa Depan, dikembangkan sebelum waktunya, tetapi sekarang menunjukkan nilainya untuk memproses data dalam jumlah besar, terlepas dari keanehannya, dokumentasi yang buruk, dan dukungan yang kurang bagus. Jika Anda menggunakan driver ODBC, maka buku kerja Excel Anda menjadi basis data relasional berbasis SQL kecil. Lembar kerja, atau area di dalam lembar kerja, menjadi tabel. Ada beberapa fitur yang hilang, tentu saja, tetapi Anda dapat melakukan penggabungan antar tabel, memfilter baris sesuai selera, melakukan agregasi, dan beberapa manipulasi string. Ini berarti bahwa Anda perlu menarik jauh lebih sedikit data ke dalam SQL karena Anda dapat melakukan banyak pemilihan dan pra-pemrosesan sebelum data mendekati SQL server. Jika, misalnya, Anda hanya memerlukan total, hitungan, dan varian dari pembacaan sehari, lalu mengapa Anda ingin mengimpor lebih dari angka agregat tersebut?

Saya juga lebih suka menggunakan ODBC dan pembaca data berurutan untuk membaca data dari Excel, atau sumber ODBC lainnya, karena cepat; . Ketika Anda memiliki banyak spreadsheet besar untuk disisipkan sebagai tugas, maka kecepatan itu penting

Driver ODBC Excel (ACE)

ODBC dipahami sebagai cara untuk membuatnya mudah terhubung ke sumber data tertentu seperti database relasional, file teks, dokumen data (e. g. XML), data berbasis web atau spreadsheet

Saat ini, ODBC for Access dan Excel yang canggih adalah Microsoft Access Database Engine 2010 Redistributable yang dapat diunduh di sini. Ini termasuk driver OLEDB yang lebih populer yang juga berjalan dengan baik di PowerShell. Driver ini memungkinkan Anda untuk mengakses berbagai file data melalui SQL seolah-olah itu adalah database relasional. Format mencakup Access, CSV,  dibatasi, DBase, dan Excel

Untuk mengembangkan pada komputer desktop 64-bit tujuan umum, Anda kemungkinan besar akan mengalami kekacauan Microsoft yang sangat konyol. Microsoft  menyarankan Anda menginstal Office 2010 versi 32-bit, bahkan pada mesin 64-bit, karena banyak Add-in Office umum tidak berjalan di lingkungan Office 64-bit. Nasihat ini telah menjadi 'praktik terbaik'. Jika Anda menggunakan PowerShell 64-bit, seperti kebanyakan dari kita, maka Anda perlu menggunakan driver versi 64-bit. Jika Anda hanya memiliki Office 32-bit di komputer Anda, perangkat tersebut sudah memiliki driver 32-bit, yang tidak akan terlihat oleh PowerShell 64-bit, dan tidak akan berfungsi. Anda tidak dapat menginstal driver 64 bit ketika Anda sudah memiliki driver 32-bit dan menurut saya Anda tidak dapat memperoleh sesuatu yang baik dengan menghapus instalan driver 32-bit. Tidak. Ketiganya (atau empat jika Anda menyertakan Visual Studio) harus 64 bit. Saya menyimpulkan bahwa salah satu jalan keluar dari Catch 22 ini adalah menginstal driver Office 2010 ODBC/OleDB 64-bit terlebih dahulu dan setelah itu Office (32-bit), tetapi ada perbaikan yang lebih baik yang melibatkan mengutak-atik registri. Lihat ini untuk cerita lengkap yang membuat frustrasi

Driver ODBC Excel di ACE bekerja dengan format spreadsheet Excel terbaru hingga 2010 serta yang lama. Saya menduga versi terbaru akan berfungsi dengan Office 2013, meskipun saya belum mencobanya

Pengemudi ini  berharga karena fleksibilitas yang diberikannya. Ini benar-benar mengeksekusi ODBC SQL, yang merupakan bagian dari SQL92, sehingga Anda dapat memasukkan alias kolom, mengubah urutan kolom, dan memfilter baris yang tidak ingin Anda impor. Akibatnya, ini memberi Anda tabel SQL yang dapat diberi nama rentang, jika itu adalah lembar kerja yang sudah ada yang telah Anda tambahkan rentang bernama ke

1

Pilih * dari MyNamedRange

Lebih umum, Anda dapat menentukan dengan nama lembar kerja yang dibatasi diikuti dengan rentang, rentang menjadi spesifikasi area lembar kerja yang cukup untuk memungkinkan driver menemukan data yang Anda inginkan. Jika Anda mengabaikan spesifikasi rentang seluruhnya, seluruh lembar kerja menjadi tabel

1

Pilih * dari [Lembar Kerjaku$]

Jika, misalnya, Anda menginginkan data dalam rentang dari C3 hingga L8, Anda akan menggunakan pernyataan tersebut

1

  Pilih * dari [MyWorksheet$C3:M8]

Di ODBC, jika Anda menentukan, katakanlah, baris 8 sebagai akhir tabel, Anda hanya dapat memilih baris hingga baris 8, bahkan jika Anda telah menyisipkan lebih banyak baris di luar batas tersebut, seperti yang diizinkan ODBC. Jika Anda menggunakan beberapa ragam, seperti mesin database MDAC 'JET' lama, Anda tidak dapat menambahkan baris baru di luar batas rentang yang ditentukan, jika tidak, Anda akan mendapatkan Exception: "Cannot expand named range" message

Jika Anda ingin menentukan tabel Anda berada di antara kolom C dan L, mulai dari baris 3 yang akan Anda gunakan

1

  Pilih * dari [NameOfExcelSheet$C3:M]

Jika Anda melakukan ini, maka tidak ada batasan panjang tabel sehingga Anda dapat menyisipkan baris sebanyak yang Anda suka. Penyedia ODBC menambahkan baris baru ke baris yang sudah ada di area yang ditentukan sesuai ruang yang memungkinkan

Tali koneksi yang ditakuti

Sekarang, sebelum kita mulai melakukan hal-hal menarik dengan driver ACE, saya harus menjelaskan sedikit tentang rangkaian koneksinya. Ini berisi spesifikasi driver ODBC yang ingin Anda gunakan, dan pengaturan yang ingin Anda kirimkan ke driver

Mengabaikan, untuk saat ini, pengaturan properti yang diperluas, Untuk data Microsoft Office Access, setel Connection String ke

1

" Pengemudi={Microsoft Access Driver (*.mdb, *. accdb)};DBQ= MyPath/MyFile"

Untuk data Excel, gunakan

1

" Pengemudi={Microsoft Excel Driver (*.xls, *. xlsx, *. xlsm, *. xlsb)};DBQ=MyPath/MyFile"

Untuk data dBASE, gunakan

1

" Pengemudi={Microsoft Access dBASE Driver {*.dbf, *. ndx, *. mdx)};DBQ=MyPath/MyFile"

Untuk data teks, gunakan

1

" Pengemudi={Microsoft Access Text Driver {*.txt, *. csv);DBQ=MyPath"

Tetapi Anda mungkin menginginkan beberapa properti yang diperluas untuk pengaturan untuk menambahkan beberapa detail tentang cara penyedia ODBC menangani koneksi khusus ini. Karena default dapat diubah secara global di registri, lebih baik menentukan properti yang diperluas ini daripada mengandalkan default

Properti yang diperluas ini hanya relevan untuk driver yang Anda gunakan. Mereka tidak selalu dapat diandalkan dan didokumentasikan dengan buruk oleh Microsoft. Saya hanya akan menyebutkan hal-hal yang penting

Pengemudi perlu mengetahui apakah baris pertama tabel berisi nama kolom. “HDR=Ya;” . Ini sebenarnya hanya akan menggunakan 64 karakter pertama dari header. “HDR=Tidak;”

ODBC Excel tidak menyimpan definisi skema terperinci dari tabel. (sebaliknya, driver Teks dan Akses) Driver ODBC Excel akan mencoba memahami data yang ditemukannya dengan mengujinya untuk melihat jenis data apa yang dapat digunakan untuk hasilnya. Itu dilakukan dengan menguji sejumlah baris sebelum melakukan impor, dan Anda dapat menentukan berapa banyak baris yang diuji sebelum memutuskan tipe data kolom dengan menggunakan MaxScanRows di properti yang diperluas. Secara default nilai ini adalah 8. Anda dapat menentukan nilai apa pun dari 1 – 16 untuk 1 hingga 16 baris. Anda juga dapat membuat nilai menjadi 0 sehingga mencari semua baris yang ada sebelum menentukan tipe data, tetapi ini memperlambat semuanya

Ini bagus untuk tabel relasional tetapi Excel sering memiliki tipe campuran di kolom Penyedia ODBC akan mencoba mengembalikan data dari tipe mayoritas, tetapi mengembalikan nilai NULL untuk sisanya yang tidak akan dikonversi. Jika kedua jenis tercampur rata dalam kolom, penyedia memilih numerik daripada teks, dan Anda kehilangan semua teks. Juga, itu akan menilai panjang tipe data karakter di kolom dari baris pertama dan jika baris pertama kurang dari 255 karakter, itu akan memotong semua data berikutnya menjadi 255 karakter bahkan jika nilai sel di bawah lebih panjang

Dengan mengatur Mode Impor (IMEX=1). Anda dapat memaksa data campuran untuk dikonversi menjadi teks, tetapi hanya jika menemukan nilai campuran pada baris yang diperiksa

Anda juga dapat membuka buku kerja Excel dalam mode baca-saja dengan menentukan ReadOnly=true; . Namun, ini akan mengunci seluruh buku kerja dari akses hingga Anda menutup koneksi

Mari kita coba

Agar Anda dapat membuktikan semua ini pada diri Anda sendiri, saya telah menyediakan buku kerja Excel yang mewakili database PUBS lama yang dulunya didistribusikan dengan SQL Server dan Sybase. Ini berarti Anda dapat menggunakan SQL dari contoh lama yang menggunakan PUBS dan melihat apa yang berhasil. Yang perlu Anda lakukan adalah sedikit mengonversi versi SQL Server dengan sedikit mengubah nama tabel untuk memberi tahu driver bahwa Anda menginginkan seluruh lembar kerja dari nama itu ($ adalah pemisah antara nama lembar kerja dan spesifikasi rentang)

Jadi mari kita buat test-rig yang sangat sederhana untuk mencoba berbagai hal di PowerShell. Berhati-hatilah, saya telah menyiapkan ini dalam mode baca-tulis sehingga akan memperbarui spreadsheet Anda dalam beberapa keadaan (CUD). Untuk memainkannya, Anda harus mengunduh database PUBS versi Excel saya dan  mengubah jalur ke file excel

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

set-psdebug -strict

$ErrorActionPreference = "stop"

 

$ExcelFilePath='MyPath\pubs. xlsx' #jalur lengkap buku kerja excel

jika (. (Jalur Uji $ExcelFilePath))

{

Write-Error "Tidak dapat menemukan '$($ExcelFilePath)'. Maaf, tidak dapat melanjutkan karena ini"

KELUAR

}

 

coba {

$Connection = Objek Baru sistem. data. odbc. odbckoneksi

$Connection. ConnectionString = 'Driver={Microsoft Excel Driver (*. xls, *. xlsx, *. xlsm, *. xlsb)};DBQ='+$ExcelFilePath+';

$Connection. Buka()

}

menangkap

{

$ex = $_. Pengecualian

Write-Error "saat membuka koneksi ke $ExcelFilePath. Maaf, tidak dapat melanjutkan karena ini"

KELUAR

}

 

coba {

$Query = Objek Baru sistem. data. odbc. odbcommand

$Query. Koneksi = $koneksi

$Query. CommandText = @'

PILIH judul, SUM(qty) SEBAGAI penjualan,

COUNT(*) SEBAGAI pesanan

DARI [judul$] t

INNER JOIN [sales$] ON t. title_id=s. judul_id

DI MANA judul seperti '%?'

KELOMPOK DENGAN judul

ORDER BY SUM(qty) DESC

'@

 

$Reader = $Query. ExecuteReader([Sistem. Data. Perilaku Perintah]. SequentialAccess) #dapatkan pembaca data dan dapatkan hasilnya dalam sekali teguk

}

menangkap

{

$ex = $_. Pengecualian

Write-Error "saat mengeksekusi kueri '$($Query. CommandText)' $ex. Pesan Maaf, tetapi kami tidak dapat melanjutkan karena hal ini. "

$Pembaca. Tutup()

$Connection. Tutup()

Keluar;

}

 

Mencoba

{

$Penghitung = $Pembaca. FieldCount #dapatkan sekali saja

$result=@() #initialise the empty array of rows

sementara ($Pembaca. Baca()) {

$Tuple = Objek-Baru -TypeName ' . Pengelolaan. Otomatisasi. Objek PSO'

untuk setiap ($i di (0.. ($Penghitung - 1 ))) {

Tambah-Anggota `

-InputObject $Tuple `

-MemberType PropertiCatatan `

-Nama $Pembaca. GetName($i) `

-Nilai $Pembaca. GetValue($i). ToString()

}

$Result+=$Tuple

}

$result . Format-Tabel

}

menangkap

{

$ex = $_. Pengecualian

Write-Error "saat membaca data dari tabel data. $mis. Pesan"

}

$Pembaca. Tutup()

$Connection. Tutup()

Semua ini berhasil

Sambungan batin

1

2

3

PILIH logo, pr_info, pub_name, city, state, country

DARI [pub_info$] pif INNER JOIN [publishers$] p

AKTIF p. pub_id=pif. pub_id

Sambungan luar kiri atau kanan

1

2

3

PILIH   judul, stor_id, ord_num, qty,ord_date

  DARI [judul$] t LEFT OUTER JOIN  [sales$] s

    AKTIF t. title_id=s. title_id

Ekspresi menggunakan kolom

1

2

3

4

PILIH   fname+' '+ minit+' '+lname AS name, job_desc

    DARI [pekerjaan$] d

    INNER GABUNG   [employee$] e

    AKTIF d. job_id=e. job_id

Ekspresi GROUP BY sederhana

1

PILIH COUNT(*) FROM [sales$] GROUP BY stor_ID

Agregasi yang lebih kompleks dengan klausa ORDER BY dan klausa WHERE

1

2

3

4

5

6

7

PILIH   judul, SUM(qty) AS sales,

        COUNT(*) AS orders

    DARI [judul$] t

      INNER GABUNG   [sales$] s ON t.title_id=s. title_id

      DIMANA judul suka '%?'0

ORDER BY ProductName DESC;

"@

$SourceWindowsSecurity = $false #or $True jika Anda menggunakan keamanan Windows

$SourceUserID = 'SA' #nama pengguna SQL Server jika keamanan tidak terintegrasi

$DestinationTable = 'ProductWithDiscounts'

$DestinationExcelFilePath = 'JalurSaya\NamaSaya. xls' #jalur lengkap buku kerja excel

$DestinationHeader = $true # true jika Anda ingin baris pertama dibaca sebagai kolom

 

#pertama, kita membuat string koneksi 'on the fly'

#koneksi ke database

#. dan dapatkan objek DataReader

$SourceConnectionString = "Sumber Data=$Sourceinstance;Initial Catalog=$Sourcedatabase;$(

if ($SourceWindowsSecurity) { 'keamanan terintegrasi = benar' }

    else { 'User Id=' + $SourceUserID + ';Password=' + "$(((Get-Credential $SourceUserID).GetNetworkCredential()). Kata Sandi)" + ';integrated security=false' })"

mencoba

{

    #di sini kita membuka koneksi ke database sumber SQL Server

    $SqlCommand = objek baru ('Data.SqlClient.SqlCommand')  $SelectStatementForDatabase, $SourceConnectionString;

    $SqlCommand. Koneksi. Buka(); #

    $handler = [Sistem.Data. SqlClient. SqlInfoMessageEventHandler] {

        param ($sender,

            $event) Write-Host "Message. $($acara. Pesan)"

    };

    $SqlCommand. Connection. add_InfoMessage($handler);

    $Reader = $SqlCommand. ExecuteReader([Sistem. Data. Perilaku Perintah]. SequentialAccess) #dapatkan pembaca data dan dapatkan hasilnya dalam sekali teguk

}

menangkap

{

    $ex = $_. Pengecualian

    Write-Error "saat mendapatkan data dari  $Sourceinstance  $Sourcedatabase '. $mis. Pesan"

    keluar

}

# excel hanya memiliki tipe data LOGICAL,CURRENCY,NUMBER,VARCHAR,DATETIME

# menurut $koneksi. GetSchema('DATATYPES'). Ketik nama

# mari kita cari tahu seperti apa tipe data Excel nantinya

$kolom = $pembaca. GetSchemaTable() . pilih namakolom, tipe data, @{

    nama = 'ExcelDatatype'; expression = {

        beralih ($_. tipe data)

        { { @('float', 'decimal', 'Numeric') -contains $_ } { 'Number' } 'bit' { 'logical' } 'int16'{ 'Int' } { @('smallmoney', 'money') -contains $_ } { 'currency' } 'DateTime'{ 'datetime' }

            default { 'VarChar' }

        }

    }

}

# sekarang kita perlu membuat lembar kerja yang setara di Buku Kerja

#Jika tidak ada buku kerja, itu akan membuatnya

$CreateScript =@"

BUAT TABEL $DestinationTable (

"@

$CreateScript += $columns . untuk setiap objek{ "`n`t$($_. Nama kolom. Pangkas())  $($_. ExcelDataType)," }

$CreateScript = $CreateScript. Substring( 0 , $ . .Panjang - 1 ) + "`n`t)"

# dan buat daftar kolom untuk pernyataan insert

$columnList = '[' + $columns . [0].NamaKolom + ']'

untuk ($ii = 1 ; $ii -le $columns.Panjang - 1 ; $ . ++) { $params += ',?'; $columnList += ' ,[' + $columns[$ii].NamaKolom + ']' }

 

mencoba

{

    #untuk membuka buku kerja tujuan atau membuatnya jika tidak ada

    $Connection = Objek Baru sistem.data. odbc. koneksi odbc

    $TheConnectionString = 'Driver={Microsoft Excel Driver (*. xls, *. xlsx, *. xlsm, *. xlsb)};DBQ=' + $DestinationExcelFilePath + ';Mode + "$(if ($DestinationHeader) { 'YES' }

        else { 'TIDAK' })" + '"'

    $Koneksi. ConnectionString = $TheConnectionString

    $Koneksi. Buka()

    $insertionCommand = $Connection. BuatPerintah()

}

menangkap

{

    $ex = $_. Pengecualian

    Write-Error "saat membuka koneksi ke  $DestinationExcelFilePath menggunakan '$($TheConnectionString)'. $mis. Pesan"

    keluar

}

mencoba

{

    #jika tabel tidak ada kita buat.

    $CreateTableCommand = $Connection. BuatPerintah()

    $CreateTableCommand. CommandText = $CreateScript

    jika ($koneksi. GetSchema('TABEL').Table_Name -notcontains $DestinationTable)

    { if ($CreateTableCommand.JalankanNonQuery() -eq -1) { write-host "created table (worksheet) $DestinationTable" } }

}

menangkap

{

    $ex = $_. Pengecualian

    Write-Error "tidak dapat membuat tabel dengan perintah $CreateScript. $mis. Pesan"

    keluar

}

$baris = 0

mencoba

{

    #sekarang kita membuat setiap pernyataan penyisipan dengan cepat. Pengembang berpaling, tolong

    sementara ($Reader. Baca())

    {

        $insertcommand = "INSERT INTO [$destinationTable" + '$] (' + "$columnList) VALUES("

        untuk ($i = 0; $i -lt $Reader.FieldCount; $i++)

         {

            $insertcommand += "$(if ($i -eq 0) { ''

                else { ',' }) $(if ($columns[$i]. ExcelDataType -eq 'VarChar') { "'$($reader. GetValue($i) -replace "'", "''")'" }

                else { "$($reader. GetValue($i))" }) "

}

$perintah penyisipan. Teks Perintah = $insertcommand + ')'

$baris += $perintah penyisipan. JalankanNonQuery()

}

}

menangkap

{

$ex = $_. Pengecualian

    Write-Error "sementara menulis ke kolom< . $mis. Pesan" $i of file  $DestinationExcelFilePath ' : $ex.Message"

    

}

#we report what we'telah dilakukan.

tulis-host "Menulis $baris baris dari $($kolom. count) ke lembar kerja $destinationTable"

$Pembaca. Tutup()

$SqlCommand. Connection. Close()

$koneksi. Tutup()

CSV dan Sumber ODBC Terpisah. Teks AdventureWorks

Meskipun driver ACE lebih banyak digunakan oleh orang yang membaca file Excel, saya harus menekankan bahwa ada driver untuk sejumlah format lain. Sangat mudah, misalnya, untuk mengubah sekumpulan file CSV menjadi database relasional. Untuk membuktikannya, saya telah membuat AdventureWorks versi CSV/Teks, beserta skemanya. ini. Ini awalnya dibuat dalam artikel ini The TSQL of CSV. Kesalahan yang Dibatasi Koma. Dengan basis data berbasis teks ini, Anda dapat melakukan banyak contoh contoh SQL AdventureWorks hanya dengan sedikit modifikasi

Setelah Anda menginstal driver ACE, Anda dapat menggunakan versi modifikasi dari rutinitas yang saya tunjukkan atau menjelajahi database PUBS Excel untuk bermain bersama

Yang harus Anda lakukan adalah meng-unzip Text Adventureworks ke direktori baru dengan nama database Anda (AdventureWorks) dan arahkan string koneksi Anda ke direktori dengan memberikannya path lengkap ke direktori. Saya baru saja mengubah dua baris

1

2

#set direktori tempat basis data Anda harus berada.   

$TextFilePath='MyPathToTheDirectoryTextAdventureWorks' #jalur ke database

… dan

1

$Connection. ConnectionString='Driver={Microsoft Access Text Driver (*. txt, *. csv)};DBQ='+$TextFilePath+''

Postingan terbaru

LIHAT SEMUA