* Fix duplicate Object ID issue created by the last change.
This commit is contained in:
parent
cc6a00b34d
commit
48a742181d
23
scanner.c
23
scanner.c
@ -385,7 +385,7 @@ insert_file(char * name, const char * path, const char * parentID, int object)
|
|||||||
unsigned long int detailID = 0;
|
unsigned long int detailID = 0;
|
||||||
char base[8];
|
char base[8];
|
||||||
char * typedir_parentID;
|
char * typedir_parentID;
|
||||||
int typedir_objectID = 0;
|
int typedir_objectID;
|
||||||
char * baseid;
|
char * baseid;
|
||||||
|
|
||||||
static long unsigned int fileno = 0;
|
static long unsigned int fileno = 0;
|
||||||
@ -414,13 +414,6 @@ insert_file(char * name, const char * path, const char * parentID, int object)
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
sprintf(objectID, "%s%s$%X", BROWSEDIR_ID, parentID, object);
|
sprintf(objectID, "%s%s$%X", BROWSEDIR_ID, parentID, object);
|
||||||
typedir_parentID = strdup(parentID);
|
|
||||||
baseid = rindex(typedir_parentID, '$');
|
|
||||||
if( baseid )
|
|
||||||
{
|
|
||||||
sscanf(baseid+1, "%X", &typedir_objectID);
|
|
||||||
*baseid = '\0';
|
|
||||||
}
|
|
||||||
|
|
||||||
sql = sqlite3_mprintf( "INSERT into OBJECTS"
|
sql = sqlite3_mprintf( "INSERT into OBJECTS"
|
||||||
" (OBJECT_ID, PARENT_ID, CLASS, DETAIL_ID, NAME) "
|
" (OBJECT_ID, PARENT_ID, CLASS, DETAIL_ID, NAME) "
|
||||||
@ -431,8 +424,19 @@ insert_file(char * name, const char * path, const char * parentID, int object)
|
|||||||
sql_exec(db, sql);
|
sql_exec(db, sql);
|
||||||
sqlite3_free(sql);
|
sqlite3_free(sql);
|
||||||
|
|
||||||
|
if( *parentID )
|
||||||
|
{
|
||||||
|
typedir_objectID = 0;
|
||||||
|
typedir_parentID = strdup(parentID);
|
||||||
|
baseid = rindex(typedir_parentID, '$');
|
||||||
|
if( baseid )
|
||||||
|
{
|
||||||
|
sscanf(baseid+1, "%X", &typedir_objectID);
|
||||||
|
*baseid = '\0';
|
||||||
|
}
|
||||||
insert_directory(name, path, base, typedir_parentID, typedir_objectID);
|
insert_directory(name, path, base, typedir_parentID, typedir_objectID);
|
||||||
|
free(typedir_parentID);
|
||||||
|
}
|
||||||
sql = sqlite3_mprintf( "INSERT into OBJECTS"
|
sql = sqlite3_mprintf( "INSERT into OBJECTS"
|
||||||
" (OBJECT_ID, PARENT_ID, REF_ID, CLASS, DETAIL_ID, NAME) "
|
" (OBJECT_ID, PARENT_ID, REF_ID, CLASS, DETAIL_ID, NAME) "
|
||||||
"VALUES"
|
"VALUES"
|
||||||
@ -442,7 +446,6 @@ insert_file(char * name, const char * path, const char * parentID, int object)
|
|||||||
sql_exec(db, sql);
|
sql_exec(db, sql);
|
||||||
sqlite3_free(sql);
|
sqlite3_free(sql);
|
||||||
|
|
||||||
free(typedir_parentID);
|
|
||||||
|
|
||||||
insert_containers(name, path, objectID, class, detailID);
|
insert_containers(name, path, objectID, class, detailID);
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user