This commit is contained in:
刘可亮
2024-09-03 11:16:08 +08:00
parent cf270df8d6
commit 803cac77d5
2931 changed files with 614364 additions and 31222 deletions

40
packages/third-party/sqlite/Kconfig vendored Normal file
View File

@@ -0,0 +1,40 @@
menuconfig LPKG_USING_SQLITE
bool "SQLite: a self-contained, high-reliability, embedded, full-featured, public-domain, SQL database engine."
default n
select RT_USING_DFS if RT_VER_NUM < 0x40100
select RT_USING_POSIX_FS if RT_VER_NUM >= 0x40100
if LPKG_USING_SQLITE
config LPKG_SQLITE_VER
string
default "v3.19.3"
config LPKG_SQLITE_SQL_MAX_LEN
int "SQL statements max length"
default 512
config LPKG_SQLITE_DB_NAME_MAX_LEN
int "Database filename(fullpath) length"
range 8 256
default 64
config LPKG_SQLITE_DAO_EXAMPLE
bool "Enable example"
default n
config LPKG_SQLITE_RECIPE_EXAMPLE
bool "Enable recipeData test example"
default n
choice
prompt "version"
help
Select the Sqlite version
config LPKG_USING_SQLITE_V3193
bool "v3.19.3"
endchoice
endif

View File

@@ -4,13 +4,13 @@ cwd = GetCurrentDir()
src = ['sqlite3.c']
src += ['dbhelper.c']
if GetDepend('PKG_SQLITE_DAO_EXAMPLE'):
if GetDepend('LPKG_SQLITE_DAO_EXAMPLE'):
src += Glob('student_dao.c')
if GetDepend('PKG_SQLITE_RECIPE_EXAMPLE'):
if GetDepend('LPKG_SQLITE_RECIPE_EXAMPLE'):
src += Glob('recipe_test.c')
CPPPATH = [cwd]
group = DefineGroup('sqlite', src, depend = ['RT_USING_DFS', 'PKG_USING_SQLITE'], CPPPATH = CPPPATH)
group = DefineGroup('sqlite', src, depend = ['RT_USING_DFS', 'LPKG_USING_SQLITE'], CPPPATH = CPPPATH)
Return('group')

View File

@@ -20,13 +20,13 @@
#define DBG_COLOR
#include <rtdbg.h>
#if PKG_SQLITE_DB_NAME_MAX_LEN < 8
#if LPKG_SQLITE_DB_NAME_MAX_LEN < 8
#error "the database name length is too short"
#endif
#define DEFAULT_DB_NAME "/data/rt.db"
static rt_mutex_t db_mutex_lock = RT_NULL;
static char db_name[PKG_SQLITE_DB_NAME_MAX_LEN + 1] = DEFAULT_DB_NAME;
static char db_name[LPKG_SQLITE_DB_NAME_MAX_LEN + 1] = DEFAULT_DB_NAME;
/**
* This function will initialize SQLite3 create a mutex as a lock.
@@ -551,10 +551,10 @@ int db_connect(char *name)
{
int32_t len = 0;
rt_mutex_take(db_mutex_lock, RT_WAITING_FOREVER);
len = rt_strnlen(name, PKG_SQLITE_DB_NAME_MAX_LEN + 1);
if (len >= PKG_SQLITE_DB_NAME_MAX_LEN + 1)
len = rt_strnlen(name, LPKG_SQLITE_DB_NAME_MAX_LEN + 1);
if (len >= LPKG_SQLITE_DB_NAME_MAX_LEN + 1)
{
LOG_E("the database name '(%s)' lengh is too long(max:%d).", name, PKG_SQLITE_DB_NAME_MAX_LEN);
LOG_E("the database name '(%s)' lengh is too long(max:%d).", name, LPKG_SQLITE_DB_NAME_MAX_LEN);
rt_mutex_release(db_mutex_lock);
return -RT_ERROR;
}
@@ -589,10 +589,10 @@ int db_set_name(char *name)
{
int32_t len = 0;
rt_mutex_take(db_mutex_lock, RT_WAITING_FOREVER);
len = rt_strnlen(name, PKG_SQLITE_DB_NAME_MAX_LEN + 1);
if (len >= PKG_SQLITE_DB_NAME_MAX_LEN + 1)
len = rt_strnlen(name, LPKG_SQLITE_DB_NAME_MAX_LEN + 1);
if (len >= LPKG_SQLITE_DB_NAME_MAX_LEN + 1)
{
LOG_E("the database name '(%s)' lengh is too long(max:%d).", name, PKG_SQLITE_DB_NAME_MAX_LEN);
LOG_E("the database name '(%s)' lengh is too long(max:%d).", name, LPKG_SQLITE_DB_NAME_MAX_LEN);
rt_mutex_release(db_mutex_lock);
return -RT_ERROR;
}
@@ -610,7 +610,7 @@ int db_set_name(char *name)
*/
char *db_get_name(void)
{
static char name[PKG_SQLITE_DB_NAME_MAX_LEN + 1];
static char name[LPKG_SQLITE_DB_NAME_MAX_LEN + 1];
size_t len = rt_strlen(db_name);
rt_strncpy(name, db_name, len);
name[len] = '\0';

View File

@@ -14,7 +14,7 @@
#include <sqlite3.h>
#include <rtthread.h>
#define DB_SQL_MAX_LEN PKG_SQLITE_SQL_MAX_LEN
#define DB_SQL_MAX_LEN LPKG_SQLITE_SQL_MAX_LEN
int db_helper_init(void);
int db_create_database(const char *sqlstr);