Pada aplikasi database DELPHI biasanya kita mempunyai dua cara untuk mengakses database. Salah satunya adalah mencari melalui database BDE mesin, yaitu menggunakan driver database yang disertakan dengan DELPHI. Keuntungan metode ini adalah cepat, namun cakupan penerapannya terbatas. Ketika versi database diperbarui, mungkin tidak dapat mengoperasikan database baru, metode lain adalah melalui ODBC, yang memiliki kelebihan Intinya bisa disediakan dengan sistem operasi (seperti WINDOWS) dan bisa diadaptasi ke berbagai database sebagai antarmuka standar. Dalam persiapan Selama prosesnya, kita dapat memilih salah satu metode sesuai dengan kebutuhan kita. Saat menggunakan ODBC untuk mengakses database, metode yang biasa dilakukan adalah menyiapkan sumber data sistem ODBC di panel manajemen ODBC. (Sistem DSN), lalu atur alias basis data (Alias) di DBD atau di program yang sesuai dengan DSN, sehingga Anda dapat menggunakan Basis data dapat dioperasikan dengan aman. Saya yakin programmer yang pernah menggunakan DELPHI untuk melakukan aplikasi database sudah familiar dengan aspek ini, dan saya tidak tahu banyak. Dikatakan. Dalam aplikasi praktis, penulis pernah mengalami situasi seperti ini. Aplikasi database kami bergantung pada sumber data sistem ODBC. Program aplikasi yang mengakses dan mengoperasikan database telah berjalan dengan baik hingga suatu saat, seseorang yang familiar dengan sistem WINDOWS namun belum familiar dengannya Pengguna yang terlalu paham secara tidak sengaja mengubah atau menghapus DSN sistem prasetel kami... Oleh karena itu, penulis mulai mempelajari cara mengatur secara dinamis konten DSN sistem ODBC dalam program tersebut, sehingga saya dapat meningkatkan program saya sendiri. Pesanannya mantap. Setelah seharian meneliti registry WINDOWS, akhirnya saya menemukan rahasia setting DSN dengan manajer ODBC. ("Ada keadilan di langit dan bumi, dan usahamu akan selalu dihargai!" Ini bukan iklan!) Saya menulisnya untuk dibagikan kepada semua orang, dan saya juga meminta nasihat dari para ahli. Rahasia setting DSN dengan program manajemen ODBC ada di registry. Jika tidak percaya bisa masuk ke HKEY_LOCAL_MACHINE/Software/ODBC. Coba lihat, pasti akan membuat Anda merasa sudah setengah jalan sukses. Pertama, mari kita lihat driver database ODBC yang terinstal di sistem. Di HKEY_LOCAL_MACHINE/Perangkat Lunak/ODBC/ ODBCInst.INI menyimpan informasi tentang driver database ODBC yang diinstal. Dari sini Anda dapat memeriksa nomor ODBC yang diinstal. Informasi seperti file DLL yang sesuai dengan driver database. Di setiap nilai kunci Driver ODBCInst.INI/ODBC, nama kuncinya adalah driver Nama (seperti Microsoft access Driver (*.mdb)) dan nilai kuncinya adalah "Terpasang", yang menunjukkan bahwa driver telah diinstal. ada ODBCInst.INI/DriverName (DriverName adalah nama driver, seperti Microsoft Access Driver (*.mdb)) , ada informasi rinci tentang driver. Kami terutama memperoleh jalur dan nama file dari file DLL yang sesuai dengan driver ODBC dari sini Nilai kunci dari nama kunci Driver umumnya adalah "C:/WINDOWS/SYSTEM/FileName.DLL". Kemudian lihat informasi registrasi sistem DSN. Di HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI, sistem disimpan Informasi pendaftaran DSN, parameter DSN yang kami atur di panel manajemen ODBC ada di sini. Mari kita lihat langkah-langkah membuat DSN sistem ODBC. Yaitu setelah kita menyelesaikan pengaturan parameter di panel manajemen ODBC, manajemen ODBC Bagaimana cara program mendaftarkan informasi DSN di registri? Ambil contoh pembuatan sistem tipe Ms Access97 DSN bernama MyAccess. Parameter yang kami tentukan terutama mencakup tipe database (Microsoft Access Driver (*.mdb)), nama sumber data (MyAccess), Deskripsi sumber data (AKSES Saya), jalur basis data (C:/Inetpub/wwwroot/Test.mdb), parameter lain seperti nama pengguna, Kata sandi pengguna, eksklusif, hanya-baca, database sistem, direktori default, ukuran buffer, jumlah baris pemindaian, batas waktu halaman, dll. gunakan sistem Parameter bawaan. Pada saat ini, sistem registrasi DSN secara umum harus memiliki langkah-langkah sebagai berikut: 1. Tambahkan kunci string di Sumber Data HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI/ODBC Nilainya adalah MyAccess = Microsoft Access Driver(*.mdb), dimana masing-masing nama sumber data dan tipe database. Ini untuk mendaftarkan nama sistem DSN di registri. 2. Buat subkunci (SubKey) MyAccess di HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI, yaitu membuat Buat kunci sebagai HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI/MyAccess, lalu buat beberapa Nilai kunci, penjelasan rinci tentang informasi konfigurasi suatu sistem DSN. Informasi utamanya adalah (isi dalam [] adalah komentar penulis): DBQ=C:/Inetpub/wwwroot/Test.mdb [String, menunjukkan jalur database] Description=AKSES Saya [string, mewakili deskripsi database] Driver=C:/PWIN98/System/odbcjt32.dll [String, menunjukkan driver, ODBCINST.INI terlihat] DriverId=0x00000019(25) [Nomor yang menunjukkan identifikasi pengemudi, tidak dapat diubah] FIL=Ms Access; [String, mungkin terkait dengan Filter] SafeTransaction=0x00000000 [Angka, dapat menunjukkan jumlah operasi transaksional yang didukung] UID="" [String, menunjukkan nama pengguna, ini string kosong] 3. Buat subkunci (SubKey)Mesin di HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI/MyAccess, Kemudian buat subkunci (SubKey) Jet di bawahnya, yaitu buat kunci sebagai HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI/MyAccess/Engines/Jet dan buat beberapa di bawahnya Nilai kunci, yang menjelaskan secara rinci informasi konfigurasi mesin database suatu sistem DSN. Informasi utamanya adalah sebagai berikut (isi dalam [] adalah anotasi penulis): ImplicitCommitSync=Ya [String, dapat menunjukkan apakah modifikasi data segera diterapkan] MaxBufferSize=0x00000200(512) [angka yang menunjukkan ukuran buffer] PageTimeout=0x00000005(5) [angka yang menunjukkan batas waktu halaman] Threads=0x00000003(3) [angka, mungkin menunjukkan jumlah maksimum thread yang didukung] UserCommitSync=Ya [String, dapat menunjukkan apakah modifikasi data akan segera diterapkan kepada pengguna] Di atas adalah informasi dasar untuk membuat sistem DSN (informasi lain seperti opsi atau opsi lanjutan juga diatur di sini, tetapi karena defaultnya informasi, tidak tercantum dalam registri), kami mengoperasikan registri sesuai dengan langkah-langkah di atas dalam program, dan kami juga dapat menambahkan DSN sistem atau mengubah konfigurasinya. Pada contoh program berikut, sistem DSN akan dibuat sesuai dengan langkah di atas. Harap perhatikan komentar di program. {****************************************************** ***** ****** Dalam prosedur ini, sumber data sistem ODBC (DSN) akan dibuat, Nama sumber data: MyAccess Deskripsi sumber data: Sumber data baru saya Jenis basis data:ACCESS97 Basis data yang sesuai: C:/Inetpub/wwwroot/test.mdb ******************************************************* * *****} {Perhatikan bahwa Registri harus disertakan dalam pernyataan USES} Prosedur TForm1.Button1Click(Pengirim: TObject); var registerTemp : TRegistry; bData : array[ 0..0 ] byte; mulai registerTemp := TRegistry.Create; //Buat instance Registri dengan registerTemp lakukan mulai RootKey:=HKEY_LOCAL_MACHINE;//Setel nilai kunci root ke HKEY_LOCAL_MACHINE //Temukan Sumber Data Perangkat Lunak/ODBC/ODBC.INI/ODBC jika OpenKey('Sumber Data Perangkat Lunak/ODBC/ODBC.INI/ODBC', Benar) maka mulai //Daftarkan nama DSN WriteString( 'Akses Saya', 'Driver Microsoft Access (*.mdb)' ); akhir kalau tidak mulai//Gagal membuat nilai kunci memo1.lines.add('Gagal menambahkan sumber data ODBC'); KELUAR; akhir; Tutup Kunci; //Temukan atau buat Software/ODBC/ODBC.INI/MyAccess dan tulis informasi konfigurasi DSN jika OpenKey('Software/ODBC/ODBC.INI/MyAccess',True) maka mulai WriteString( 'DBQ', 'C:/inetpub/wwwroot/test.mdb' );//Direktori basis data WriteString( 'Deskripsi', 'Sumber data baru saya' );//Deskripsi sumber data WriteString( 'Pengemudi', 'C:/PWIN98/SYSTEM/odbcjt32.dll' );//Berkas DLL pengandar WriteInteger( 'DriverId', 25 );//ID Driver WriteString( 'FIL', 'Ms Access;' );//Filter dasar WriteInteger( 'SafeTransaction', 0 );//Jumlah operasi transaksi yang didukung WriteString( 'UID', '' );//Nama pengguna bData[0] := 0; WriteBinaryData( 'Eksklusif', bData, 1 );//Mode non-eksklusif WriteBinaryData( 'ReadOnly', bData, 1 );//Mode non-baca saja akhir else//Gagal membuat nilai kunci mulai memo1.lines.add('Gagal menambahkan sumber data ODBC'); KELUAR; akhir; Tutup Kunci; //Temukan atau buat Perangkat Lunak/ODBC/ODBC.INI/MyAccess/Engines/Jet //Menulis informasi konfigurasi mesin basis data DSN jika OpenKey('Software/ODBC/ODBC.INI/MyAccess/Engines/Jet',True) maka mulai WriteString('ImplicitCommitSync', 'Ya' ); WriteInteger( 'MaxBufferSize', 512 );//Ukuran buffer WriteInteger( 'Waktu Halaman Habis', 10 ); //Waktu halaman habis WriteInteger( 'Threads', 3 );//Jumlah thread yang didukung WriteString('UserCommitSync', 'Ya' ); akhir else//Gagal membuat nilai kunci mulai memo1.lines.add('Gagal menambahkan sumber data ODBC'); KELUAR; akhir; Tutup Kunci; memo1.lines.add('Berhasil menambahkan sumber data ODBC baru'); Bebas; akhir; akhir; Program di atas telah di-debug dan diteruskan di bawah PWIN98+DELPHI3.0. Berikut informasi yang perlu diset untuk membuat DSN tipe database umum ([] adalah isi komentar, kecuali komentar khusus, masing-masing parameter dapat dilihat pada uraian sebelumnya): 1. Akses(Microsoft Access Driver(*.mdb)) DBQ, Deskripsi, Driver[odbcjt32.dll], DriverID[25], FIL[Ms Access;], SafeTransaction[defaultnya adalah 0], UID[defaultnya kosong], Mesin/Jet/ImplicitCommitSync[defaultnya adalah Ya], Mesin/Jet/MaxBufferSize[default 512], Mesin/Jet/PageTimeout[defaultnya adalah 512], Mesin/Jet/Threads[defaultnya adalah 3], Mesin/Jet/UserCommitSync [defaultnya adalah Ya] Pengaturan opsional: SystemDb[string, jalur ke database sistem], ReadOnly[biner, apakah akan dibuka dalam mode read-only, 1 berarti ya, defaultnya adalah 0], Eksklusif[biner, apakah akan dibuka dalam mode eksklusif, 1 berarti ya, defaultnya adalah 0], PWD [string, kata sandi pengguna] 2. Excel(Pengandar Microsoft Excel(*.xls)) DBQ[Excel97(=jalur/xxx.xls), 5.0/7.0(=jalur/xxx.xls), 4.0(=jalur), 3.0(=jalur)], Deskripsi, Pengemudi[odbcjt32.dll], DefaultDir[Excel97(<>DBQ),5.0/7.0(<>DBQ),4.0(=DBQ),3.0(=DBQ)], ID Pengemudi[790(Excel97), 22(5.0/7.0), 278(4.0), 534(3.0)], FIL[Excel5.0;], ReadOnly, SafeTransaction, UID, Engines/Excel/ImplicitCommitSync, Engines/Excel/MaxScanRows[jumlah, jumlah baris yang dipindai, defaultnya adalah 8], Mesin/Excel/Utas、Mesin/Excel/UserCommitSync、 Engines/Excel/FirstRowHasName[biner, apakah baris pertama adalah nama domain, 1 berarti ya, defaultnya adalah 1] Catatan: DBQ Excel97 dan Excel7.0/5.0 berhubungan dengan file XLS, sedangkan Excel4.0 dan Excel3.0 berhubungan dengan direktori; DefaultDir berhubungan dengan direktori, yang merupakan jalur yang berhubungan dengan DBQ di Excel97 dan Excel7.0/5.0. Ini sama dengan DBQ di Excel4.0 dan Excel3.0; DriverID setiap versi berbeda. 3. dBase(Pengandar Microsoft dBase(*.dbf)) DefaultDir[string, direktori tempat file database berada], Deskripsi, Driver[odbcjt32.dll], DriverID[277(IV), 533(5.0)], FIL[dbase III;], SafeTransaction, UID, Mesin/Xbase/ImplicitCommitSync, Mesin/Xbase/Collating[String, basis pengurutan, dapat berupa ASCII, Internasional, Norwegia-Denmark, Swedia-Finlandia], Mesin/Xbase/Dihapus[biner, apakah tidak akan menampilkan catatan yang dihapus sementara, 0 berarti tampilan, defaultnya adalah 1], Mesin/Xbase/PageTimeout[standarnya adalah 600], Mesin/Xbase/UserCommitSync, Mesin/Xbase/Utas, Mesin/Xbase/Statistik [biner, apakah akan menggunakan perkiraan jumlah baris, 1 berarti ya, default 0] Catatan: (DriverId kedua versi dBaseIV dan dBase5.0 berbeda) 4. Foxpro(Pengandar Microsoft Foxpro(*.dbf)) DefaultDir[direktori tempat file database berada], Deskripsi, Driver[odbcjt32.dll], DriverID[536(2.6), 280(2.5)], FIL[Foxpro 2.0;], Transaksi Aman, UID, Mesin/Xbase/Collating[String, basis pengurutan, bisa ASCII, Internasional], Mesin/Xbase/Dihapus[biner, apakah tidak akan menampilkan catatan yang dihapus sementara, 0 berarti tampilan, defaultnya adalah 1], Mesin/Xbase/PageTimeout[standarnya adalah 600], Mesin/Xbase/UserCommitSync, Mesin/Xbase/Utas, Mesin/Xbase/Statistik [biner, apakah akan menggunakan perkiraan jumlah baris, 1 berarti ya, default 0] Catatan: (DriverId versi Foxpro2.5 dan Foxpro2.6 berbeda) Jadikan program di atas menjadi kontrol COM atau ActiveX, yang dapat digunakan di banyak bahasa pemrograman tingkat tinggi seperti DELPHI, C++Buider, VB, VC, dan PB. |