好,如果再加一个client,会更好。
为什么不用 sqlite3.lib?
;===============================
sqlite3_aggregate_context PROTO C :DWORD,:VARARG
sqlite3_aggregate_count PROTO C :DWORD,:VARARG
sqlite3_bind_blob PROTO C :DWORD,:VARARG
sqlite3_bind_double PROTO C :DWORD,:VARARG
sqlite3_bind_int PROTO C :DWORD,:VARARG
sqlite3_bind_int64 PROTO C :DWORD,:VARARG
sqlite3_bind_null PROTO C :DWORD,:VARARG
sqlite3_bind_parameter_count PROTO C :DWORD,:VARARG
sqlite3_bind_parameter_index PROTO C :DWORD,:VARARG
sqlite3_bind_parameter_name PROTO C :DWORD,:VARARG
sqlite3_bind_text PROTO C :DWORD,:VARARG
sqlite3_bind_text16 PROTO C :DWORD,:VARARG
sqlite3_busy_handler PROTO C :DWORD,:VARARG
sqlite3_busy_timeout PROTO C :DWORD,:VARARG
sqlite3_changes PROTO C :DWORD,:VARARG
sqlite3_close PROTO C :DWORD,:VARARG
sqlite3_collation_needed PROTO C :DWORD,:VARARG
sqlite3_collation_needed16 PROTO C :DWORD,:VARARG
sqlite3_column_blob PROTO C :DWORD,:VARARG
sqlite3_column_bytes PROTO C :DWORD,:VARARG
sqlite3_column_bytes16 PROTO C :DWORD,:VARARG
sqlite3_column_count PROTO C :DWORD,:VARARG
sqlite3_column_decltype PROTO C :DWORD,:VARARG
sqlite3_column_decltype16 PROTO C :DWORD,:VARARG
sqlite3_column_double PROTO C :DWORD,:VARARG
sqlite3_column_int PROTO C :DWORD,:VARARG
sqlite3_column_int64 PROTO C :DWORD,:VARARG
sqlite3_column_name PROTO C :DWORD,:VARARG
sqlite3_column_name16 PROTO C :DWORD,:VARARG
sqlite3_column_text PROTO C :DWORD,:VARARG
sqlite3_column_text16 PROTO C :DWORD,:VARARG
sqlite3_column_type PROTO C :DWORD,:VARARG
sqlite3_commit_hook PROTO C :DWORD,:VARARG
sqlite3_complete PROTO C :DWORD,:VARARG
sqlite3_complete16 PROTO C :DWORD,:VARARG
sqlite3_create_collation PROTO C :DWORD,:VARARG
sqlite3_create_collation16 PROTO C :DWORD,:VARARG
sqlite3_create_function PROTO C :DWORD,:VARARG
sqlite3_create_function16 PROTO C :DWORD,:VARARG
sqlite3_data_count PROTO C :DWORD,:VARARG
sqlite3_db_handle PROTO C :DWORD,:VARARG
sqlite3_errcode PROTO C :DWORD,:VARARG
sqlite3_errmsg PROTO C :DWORD,:VARARG
sqlite3_errmsg16 PROTO C :DWORD,:VARARG
sqlite3_exec PROTO C :DWORD,:VARARG
sqlite3_expired PROTO C :DWORD,:VARARG
sqlite3_finalize PROTO C :DWORD,:VARARG
sqlite3_free PROTO C :DWORD,:VARARG
sqlite3_free_table PROTO C :DWORD,:VARARG
sqlite3_get_autocommit PROTO C :DWORD,:VARARG
sqlite3_get_auxdata PROTO C :DWORD,:VARARG
sqlite3_get_table PROTO C :DWORD,:VARARG
sqlite3_global_recover PROTO C :DWORD,:VARARG
sqlite3_interrupt PROTO C :DWORD,:VARARG
sqlite3_last_insert_rowid PROTO C :DWORD,:VARARG
sqlite3_libversion PROTO C :DWORD,:VARARG
sqlite3_libversion_number PROTO C :DWORD,:VARARG
sqlite3_mprintf PROTO C :DWORD,:VARARG
sqlite3_open PROTO C :DWORD,:VARARG
sqlite3_open16 PROTO C :DWORD,:VARARG
sqlite3_prepare PROTO C :DWORD,:VARARG
sqlite3_prepare16 PROTO C :DWORD,:VARARG
sqlite3_progress_handler PROTO C :DWORD,:VARARG
sqlite3_reset PROTO C :DWORD,:VARARG
sqlite3_result_blob PROTO C :DWORD,:VARARG
sqlite3_result_double PROTO C :DWORD,:VARARG
sqlite3_result_error PROTO C :DWORD,:VARARG
sqlite3_result_error16 PROTO C :DWORD,:VARARG
sqlite3_result_int PROTO C :DWORD,:VARARG
sqlite3_result_int64 PROTO C :DWORD,:VARARG
sqlite3_result_null PROTO C :DWORD,:VARARG
sqlite3_result_text PROTO C :DWORD,:VARARG
sqlite3_result_text16 PROTO C :DWORD,:VARARG
sqlite3_result_text16be PROTO C :DWORD,:VARARG
sqlite3_result_text16le PROTO C :DWORD,:VARARG
sqlite3_result_value PROTO C :DWORD,:VARARG
sqlite3_set_authorizer PROTO C :DWORD,:VARARG
sqlite3_set_auxdata PROTO C :DWORD,:VARARG
sqlite3_snprintf PROTO C :DWORD,:VARARG
sqlite3_step PROTO C :DWORD,:VARARG
sqlite3_total_changes PROTO C :DWORD,:VARARG
sqlite3_trace PROTO C :DWORD,:VARARG
sqlite3_transfer_bindings PROTO C :DWORD,:VARARG
sqlite3_user_data PROTO C :DWORD,:VARARG
sqlite3_value_blob PROTO C :DWORD,:VARARG
sqlite3_value_bytes PROTO C :DWORD,:VARARG
sqlite3_value_bytes16 PROTO C :DWORD,:VARARG
sqlite3_value_double PROTO C :DWORD,:VARARG
sqlite3_value_int PROTO C :DWORD,:VARARG
sqlite3_value_int64 PROTO C :DWORD,:VARARG
sqlite3_value_text PROTO C :DWORD,:VARARG
sqlite3_value_text16 PROTO C :DWORD,:VARARG
sqlite3_value_text16be PROTO C :DWORD,:VARARG
sqlite3_value_text16le PROTO C :DWORD,:VARARG
sqlite3_value_type PROTO C :DWORD,:VARARG
sqlite3_vmprintf PROTO C :DWORD,:VARARG
SQLITE_OK equ 0 ; /* Successful result */
SQLITE_ERROR equ 1 ; /* SQL error or missing database */
SQLITE_INTERNAL equ 2 ; /* An internal logic error in SQLite */
SQLITE_PERM equ 3 ; /* Access permission denied */
SQLITE_ABORT equ 4 ; /* Callback routine requested an abort */
SQLITE_BUSY equ 5 ; /* The database file is locked */
SQLITE_LOCKED equ 6 ; /* A table in the database is locked */
SQLITE_NOMEM equ 7 ; /* A malloc() failed */
SQLITE_READONLY equ 8 ; /* Attempt to write a readonly database */
SQLITE_INTERRUPT equ 9 ; /* Operation terminated by sqlite_interrupt() */
SQLITE_IOERR equ 10 ; /* Some kind of disk I/O error occurred */
SQLITE_CORRUPT equ 11 ; /* The database disk image is malformed */
SQLITE_NOTFOUND equ 12 ; /* (Internal Only) Table or record not found */
SQLITE_FULL equ 13 ; /* Insertion failed because database is full */
SQLITE_CANTOPEN equ 14 ; /* Unable to open the database file */
SQLITE_PROTOCOL equ 15 ; /* Database lock protocol error */
SQLITE_EMPTY equ 16 ; /* (Internal Only) Database table is empty */
SQLITE_SCHEMA equ 17 ; /* The database schema changed */
SQLITE_TOOBIG equ 18 ; /* Too much data for one row of a table */
SQLITE_CONSTRAINT equ 19 ; /* Abort due to constraint violation */
SQLITE_MISMATCH equ 20 ; /* Data type mismatch */
SQLITE_MISUSE equ 21 ; /* Library used incorrectly */
SQLITE_NOLFS equ 22 ; /* Uses OS features not supported on host */
SQLITE_AUTH equ 23 ; /* Authorization denied */
SQLITE_ROW equ 100 ; /* sqlite_step() has another row ready */
SQLITE_DONE equ 101 ; /* sqlite_step() has fini
SQLITE_COPY equ 0 ; /* Table Name File Name */
SQLITE_CREATE_INDEX equ 1 ; /* Index Name Table Name */
SQLITE_CREATE_TABLE equ 2 ; /* Table Name NULL */
SQLITE_CREATE_TEMP_INDEX equ 3 ; /* Index Name Table Name */
SQLITE_CREATE_TEMP_TABLE equ 4 ; /* Table Name NULL */
SQLITE_CREATE_TEMP_TRIGGER equ 5 ; /* Trigger Name Table Name */
SQLITE_CREATE_TEMP_VIEW equ 6 ; /* View Name NULL */
SQLITE_CREATE_TRIGGER equ 7 ; /* Trigger Name Table Name */
SQLITE_CREATE_VIEW equ 8 ; /* View Name NULL */
SQLITE_DELETE equ 9 ; /* Table Name NULL */
SQLITE_DROP_INDEX equ 10 ; /* Index Name Table Name */
SQLITE_DROP_TABLE equ 11 ; /* Table Name NULL */
SQLITE_DROP_TEMP_INDEX equ 12 ; /* Index Name Table Name */
SQLITE_DROP_TEMP_TABLE equ 13 ; /* Table Name NULL */
SQLITE_DROP_TEMP_TRIGGER equ 14 ; /* Trigger Name Table Name */
SQLITE_DROP_TEMP_VIEW equ 15 ; /* View Name NULL */
SQLITE_DROP_TRIGGER equ 16 ; /* Trigger Name Table Name */
SQLITE_DROP_VIEW equ 17 ; /* View Name NULL */
SQLITE_INSERT equ 18 ; /* Table Name NULL */
SQLITE_PRAGMA equ 19 ; /* Pragma Name 1st arg or NULL */
SQLITE_READ equ 20 ; /* Table Name Column Name */
SQLITE_SELECT equ 21 ; /* NULL NULL */
SQLITE_TRANSACTION equ 22 ; /* NULL NULL */
SQLITE_UPDATE equ 23 ; /* Table Name Column Name */
SQLITE_ATTACH equ 24 ; /* Filename NULL */
SQLITE_DETACH equ 25 ; /* Database Name NULL */
SQLITE_ALTER_TABLE equ 26 ; /* Database Name Table Name */
SQLITE_REINDEX equ 27 ; /* Index Name NULL */
SQLITE_DENY equ 1 ; /* Abort the SQL statement with an error */
SQLITE_IGNORE equ 2 ; /* Don't allow access, but don't generate an error */
最初由 sixL 发布 好,如果再加一个client,会更好。 为什么不用 sqlite3.lib? ;=============================== sqlite3_aggregate_context PROTO C :DWORD,:VARARG sqlite3_aggregate_count PROTO C :DWORD,:VARARG ........
Assembler affords the programmer looking for additional performance a three
pronged approach in the pursuit of high performance software.
1. High performance executable files.
Executable programs built with Microsoft assembler have advantages in both
size and speed when written correctly that is beyond the capacity of the best
compilers. Performance critical software is a natural target for pure assembler
programs.
2. Dynamic link libraries.
MASM can build very high performance dynamic link libraries that can be used by
MASM, Visual C/C++ and Visual Basic as well as any other language that can call
a DLL. This puts minimum size high performance files within the reach of any language
that can call a DLL and allows the programmer to design processor intensive algorithms
that are beyond the reach of the native language they are using.
3. Library modules for Microsoft Visual C/C++ programs.
MASM produces the identical object module format that is used by the Visual C/C++ compilers
so the C/C++ programmer can build modules or libraries in MASM and directly link them into
their own C/C++ programs. This allows the C/C++ programmer to target critical areas of their
code in a very efficient and convenient manner, graphics manipulation, games, very high
speed data manipulation and processing, parsing at speeds that most programmers have never
seen, encryption, compression and any other form of information processing that is processor
intensive.
For programmers who are not familiar with 32 bit Windows assembler, there is speed and
performance available that you may never have seen before and contrary to popular legend,
if you can write a Windows application in C/C++, Basic, Pascal or other similar compiler
based languages, you can write it in MASM with very similar looking code if you bother
to learn the MASM high level syntax.