SetDatabaseBlob with two Databases
Posted: Thu Jul 11, 2024 10:04 pm
				
				How to put back "DatabaseQuery" into a database (BLOB);
(DataBase out "SQL_OUD" and insterted into Database "SQL_TEST")
Kind regards,
Little_man
			(DataBase out "SQL_OUD" and insterted into Database "SQL_TEST")
Code: Select all
OpenDatabase(SQL__TEST, SQL__TEST__Path_File, #Null$, #Null$, #PB_Database_SQLite)
;###############################################################################
OpenDatabase(SQL__OUD, SQL__OUD__Path_File, #Null$, #Null$, #PB_Database_SQLite)
  DatabaseQuery(SQL__OUD, "SELECT * FROM Product_Description")
  While NextDatabaseRow(SQL__OUD)
    SQLRequest__TEST = "INSERT INTO Product_Description "
    SQLRequest__TEST + "("
    SQLRequest__TEST + "Nr, Description, Ingredients, Price, FAT_Rate, "
    SQLRequest__TEST + "Product_Image_Name, Product_Image_Path, Product_Image_Photo, Product_Image_Size"
    SQLRequest__TEST + ") VALUES ("
    SQLRequest__TEST + "'" + GetDatabaseString(SQL__OUD, 1) + "', "                                ;Nr                      - 1   TEXT.
    SQLRequest__TEST + "'" + ReplaceString(GetDatabaseString(SQL__OUD, 2), "'", "|") + "', "       ;Description             - 2   TEXT.
    SQLRequest__TEST + "'" + ReplaceString(GetDatabaseString(SQL__OUD, 3), "'", "|") + "', "       ;Ingredients             - 3   TEXT.
    SQLRequest__TEST + "'" + GetDatabaseString(SQL__OUD, 4) + "', "                                ;Price                   - 4   TEXT.
    SQLRequest__TEST + "'" + GetDatabaseString(SQL__OUD, 5) + "', "                                ;FAT_Rate                - 5   TEXT.
    SQLRequest__TEST + "'" + GetDatabaseString(SQL__OUD, 6) + "', "                                ;Product_Image_Name      - 6   TEXT.
    SQLRequest__TEST + "'" + GetDatabaseString(SQL__OUD, 7) + "', "                                ;Product_Image_Path      - 7   TEXT.
    
    If GetDatabaseString(SQL__OUD, 8) <> #Null$
        *Buffer = AllocateMemory(DatabaseColumnSize(SQL__OUD, 8), #PB_Memory_NoClear)
        If *Buffer
          If GetDatabaseBlob(SQL__OUD, 8, *Buffer, MemorySize(*Buffer))
            Line$ = Base64Encoder(*Buffer, MemorySize(*Buffer))
            ;Base64Decoder(Input$, *OutputBuffer, OutputSize) 
            ;How to put back into a database  ??????
            ;=======================================
            SQLRequest__TEST + "'" + Line$                          + "', "                        ;Product_Image_Photo     - 8   BLOB.
            SQLRequest__TEST + "'" + GetDatabaseString(SQL__OUD, 9) + "') "                        ;Product_Image_Photo     - 9   INTEGER.
          EndIf
          FreeMemory(*Buffer)
        EndIf
      Else
        SQLRequest__TEST + "'" + ""                        + "', "                                 ;Product_Image_Photo     - 8   BLOB.
        SQLRequest__TEST + "'" + "" + "') "                                                        ;Product_Image_Photo     - 9   INTEGER.
    EndIf
    DatabaseUpdate(SQL__TEST, SQLRequest__TEST)
  Wend
  FinishDatabaseQuery(SQL__OUD)
  FinishDatabaseQuery(SQL__TEST)
CloseDatabase(SQL__OUD)
CloseDatabase(SQL__TEST)
;###############################################################################
Little_man