Saya terus berbicara tentang kehidupan dengan Clarion. Dalam posting ini saya akan menjelaskan cara saya menyelesaikan salah satu tugas yang paling sering dihadapi pengembang Clarion, ini adalah migrasi program Clarion ke DBMS Miscrosoft SQL.
Kebetulan beberapa bulan yang lalu, 2 program tentang teknologi Clarion diserahkan kepada saya untuk diservis, alasannya menyedihkan, generasi lama pergi, dan inilah yang terjadi pada pembimbing ilmiah saya. Selama beberapa tahun saya bekerja dengannya sebagai programmer di Clarion, kemudian saya kehilangan minat pada teknologi ini dan jalan kami menyimpang. Dan sekarang, setelah beberapa tahun berlalu, saya dihadapkan pada kebutuhan untuk mendukung dan terkadang mengembangkan 2 program.
Bermasalah
Clarion, , , Update Insert Clarion , . :
Access:Agent.Open !
Access:Agent.UseFile !
clear(AGN:Record) !
AGN:ID_AGENT = some_id !
set(AGN:BY_ID,AGN:BY_ID) ! ""
next(agent) !
IF errorcode() or AGN:ID_AGENT <> some_id !
RETVAL = ' ' !
ELSE
RETVAL = AGN:N_AGENT !
.
Access:Agent.Close !
, , " " "" . . SQL :
select agent.name where id = some_id
, " 1 ", , SQL, SQL . , SQL SQL.
: 80
: 250
: + ( )
:
3
5 -
DCT2SQL
Cldump
BULK insert
UltimateSQL & Ultimate Debug
, , . . post dat .
DCT2SQL
Dictionary SQL, , foreign keys. , . .
youtube . SQL.
CLDUMP
*.dat csv BULK. - . 10 15-20 . , Linux, debian. -, post , csv .
, "" , , , "" . " " " ". . , , "".
cldump debian :
apt-get install cldump
BULK insert
Dalam sepersekian detik menarik tabel dari csv ke SQL. Dalam hal ini, karena pengikatan data sudah dikonfigurasi untuk ID yang ada, tetapi pada saat yang sama penambahan otomatis perlu berfungsi, jadi harus dinonaktifkan sementara, saya juga menghabiskan cukup banyak waktu untuk menemukan pemisah yang sesuai:
BULK INSERT dbo.%table_name%
FROM table_name.csv WITH (
FORMAT = 'CSV',
FIELDQUOTE = '',
FIRSTROW = 1,
FIELDTERMINATOR = '0x3b',
ROWTERMINATOR = '0x0a',
CODEPAGE='65001',
TABLOCK,
KeepIdentity)
UltimateSQL & Ultimate Debug
Komponen ini memungkinkan Anda untuk memuat data dari SQL ke ANTRIAN seperti ini:
SQL_Result = sql.query('
select id, path_to_result
from dbo.export_tasks as et
where
(status_complete = 0 or status_complete = 2)
and export_table_id = '& exp:id
,qexport_tasks)
Jalankan kueri tanpa nilai kembali:
sql.Query('Update export_tasks set status_complete = 2 where id = ' & qexport_tasks.id)
Ada penjelasan bagus tentang cara menggunakan di youtube:
Juga, saat menginstal, di dalam template ada "telur Paskah" dari penulis, cara menyelesaikan pencarian dijelaskan oleh tautan .