diff --git a/packages/myddas/MyddasProto.h b/packages/myddas/MyddasProto.h index e6d171e76..08f71cdc8 100644 --- a/packages/myddas/MyddasProto.h +++ b/packages/myddas/MyddasProto.h @@ -60,8 +60,14 @@ void Yap_InitMYDDAS_ODBCPreds(void); void Yap_InitBackMYDDAS_ODBCPreds(void); #endif -/* myddas_shared.c */ -#if defined MYDDAS_ODBC || defined MYDDAS_MYSQL +/* myddas_odbc.c */ +#if defined MYDDAS_SQLITE3 +void Yap_InitMYDDAS_SQLITE3Preds(void); +void Yap_InitBackMYDDAS_SQLITE3Preds(void); +#endif + +/* Myddas_shared.c */ +#if defined USE_MYDDAS void Yap_MYDDAS_delete_all_myddas_structs(void); void Yap_InitMYDDAS_SharedPreds(void); void Yap_InitBackMYDDAS_SharedPreds(void); diff --git a/packages/myddas/myddas_shared.c b/packages/myddas/myddas_shared.c index 3041a4061..766092123 100644 --- a/packages/myddas/myddas_shared.c +++ b/packages/myddas/myddas_shared.c @@ -707,7 +707,10 @@ init_myddas(void) #if defined MYDDAS_ODBC Yap_InitBackMYDDAS_ODBCPreds(); #endif -#if defined MYDDAS_ODBC || defined MYDDAS_MYSQL +#if defined MYDDAS_SQLITE3 + Yap_InitBackMYDDAS_SQLITE3Preds(); +#endif +#if defined USE_MYDDAS Yap_InitBackMYDDAS_SharedPreds(); #endif #if defined MYDDAS_MYSQL @@ -716,7 +719,10 @@ init_myddas(void) #if defined MYDDAS_ODBC Yap_InitMYDDAS_ODBCPreds(); #endif -#if defined MYDDAS_ODBC || defined MYDDAS_MYSQL +#if defined MYDDAS_SQLITE3 + Yap_InitMYDDAS_SQLITE3Preds(); +#endif +#if defined USE_MYDDAS Yap_InitMYDDAS_SharedPreds(); #endif #if defined MYDDAS_TOP_LEVEL && defined MYDDAS_MYSQL // && defined HAVE_LIBREADLINE diff --git a/packages/myddas/myddas_sqlite3.c b/packages/myddas/myddas_sqlite3.c index ba89c2790..a02ba9efe 100644 --- a/packages/myddas/myddas_sqlite3.c +++ b/packages/myddas/myddas_sqlite3.c @@ -65,8 +65,8 @@ typedef struct result_set { int length; } resultSet; -void Yap_InitMYDDAS_SQLitePreds(void); -void Yap_InitBackMYDDAS_sqlite3Preds(void); +void Yap_InitMYDDAS_SQLITE3Preds(void); +void Yap_InitBackMYDDAS_SQLITE3Preds(void); static Int c_sqlite3_connect( USES_REGS1 ); @@ -82,10 +82,10 @@ static Int c_sqlite3_get_next_result_set( USES_REGS1 ); static Int c_sqlite3_get_database( USES_REGS1 ); static Int c_sqlite3_change_database( USES_REGS1 ); -void Yap_InitMYDDAS_SQLitePreds(void) +void Yap_InitMYDDAS_SQLITE3Preds(void) { /* db_dbect: Host x User x Passwd x Database x dbection x ERROR_CODE */ - Yap_InitCPred("c_sqlite3_connect", 7, c_sqlite3_connect, 0); + Yap_InitCPred("c_db_sqlite3_connect", 4, c_sqlite3_connect, 0); /* db_number_of_fields: Relation x connection x NumberOfFields */ Yap_InitCPred("c_sqlite3_number_of_fields",3, c_sqlite3_number_of_fields, 0); @@ -116,7 +116,7 @@ void Yap_InitMYDDAS_SQLitePreds(void) } -void Yap_InitBackMYDDAS_sqlite3Preds(void) +void Yap_InitBackMYDDAS_SQLITE3Preds(void) { /* db_row: ResultSet x Arity x ListOfArgs */ Yap_InitCPredBackCut("c_sqlite3_row", 3, sizeof(Int), @@ -130,7 +130,7 @@ static Int c_sqlite3_connect( USES_REGS1 ) { Term arg_file = Deref(ARG1); - Term arg_db = ARG2; + Term arg_db = ARG4; MYDDAS_UTIL_CONNECTION new = NULL; sqlite3 *db; diff --git a/packages/myddas/pl/myddas.ypp b/packages/myddas/pl/myddas.ypp index 60036f035..31c09b05c 100644 --- a/packages/myddas/pl/myddas.ypp +++ b/packages/myddas/pl/myddas.ypp @@ -15,7 +15,7 @@ * * *************************************************************************/ -#if defined MYDDAS_MYSQL || defined MYDDAS_ODBC +#if USE_MYDDAS :- load_foreign_files([myddas], [], init_myddas). @@ -890,6 +890,12 @@ db_open(odbc,Connection,ODBCEntry,User,Password) :- c_db_odbc_connect(ODBCEntry,User,Password,Con), set_value(Connection,Con). #endif +#ifdef MYDDAS_SQLITE3 +db_open(sqlite3,Connection,ODBCEntry,User,Password) :- + '$error_checks'(db_open(odbc,Connection,ODBCEntry,User,Password)), + c_db_sqlite3_connect(ODBCEntry,User,Password,Con), + set_value(Connection,Con). +#endif %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%