Beberapa waktu yang lalu, selama proses proyek, kami mengalami masalah dengan sumber data ketika kami perlu memuat data secara dinamis dari database yang berbeda. Tentu saja, tabel DBF tidak dapat dihubungkan dengan ADOQUERY (versi patch tidak diunduh, tetapi sudah lebih baru ditemukan bahwa itu juga dapat dihubungkan) harus dibangun dengan ODBC. Untuk melakukan pemrosesan koneksi, ODBC harus dibuat secara dinamis untuk menghilangkan kemungkinan pengguna menghapus ODBC. Di bawah ini saya akan menuliskan prototipe fungsi API dan pernyataan untuk membuat SQLSERVER dan DBF tabel untuk dibagikan (tentu saja SQLSERVER tidak perlu dibuat dalam keadaan ADO).
SQLConfigDataSource(hwndParent: Integer; fRequest: Integer;lpszDriverString: String; lpszAttributes: String): Integer;
Gunakan dalam keadaan panggilan:
function SQLConfigDataSource(hwndParent: Integer; fRequest: Integer;lpszDriverString: String; lpszAttributes: String): Integer;stdcall;eksternal 'ODBCCP32.DLL';
Buat SQLSERVER ODBC:
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN,'SQL Server','DSN=Record_ODBC'+ chr(0) +'Server=(lokal)'+ chr(0) +'Database=master'+ chr(0) +'Deskripsi=DragonPC Sumber SQLServer ODBC'+ chr(0));
{DSN: Nama sumber data ODBC Anda.
Server: Nama server database Anda. Gunakan (lokal) untuk merujuk ke database yang diinstal pada komputer lokal Anda. Catatan: SQL Server 2000 terbaru mendukung satu komputer yang menjalankan beberapa layanan SQL Server. Saat ini, Anda perlu menentukan InstanceName dari SqlSever.
Alamat: Tentukan alamat IP jaringan server SQL Server.
Basis Data: Tentukan nama basis data default.
Bahasa: Tentukan bahasa default.
Deskripsi: Keterangan informasi. }
Buat tabel DBF ODBC:
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, 'Microsoft Visual FoxPRo Driver' + CHR(0), 'dsn=SourceTable' + CHR(0) + 'BackgroundFetch=Yes' + CHR(0) + 'Description=deskripsi koneksi' + CHR (0) + 'Eksklusif=Tidak' + CHR(0) +sourcedbstr + CHR(0) +'Jenis Sumber=DBF');
Segalanya sama, hanya saja butuh waktu lama untuk membuat dan men-debug tabel DBF. Saya harap Anda tidak membuang waktu dengan menuliskannya.
Catatan: Konten di atas hanya untuk referensi bagi pemula yang mengalami masalah serupa.