Is this the issue? To pass binary data in an array element, prepend "*b" to the element's key.
Sent from my iPhone > On Jun 3, 2022, at 6:56 PM, Bob Sneidar via use-livecode > <use-livecode@lists.runrev.com> wrote: > > Hi Doc thanks for the response. I am using aes256 encryption so an ascii > hash is not viable. If this were a file based sqLite database I could perhaps > change the encoding. Maybe I can with a :memory: database too! Here's my > code. I have posted this before, it's an incredibly useful handler. If you > provide pDBID it will ADD or REPLACE a table in that :memory: database. If > you do NOT it will create a NEW :memory: database and return the database ID. > The parameter pDBName is misnamed it should probably be pTableName. I'll fix > that later. > > I suppose what I need is a statement to change the encoding of the database > before I create it. > > put arrayToSQLite(tPasswordsDataA, ":memory:", "passwords", lMemoryDB) into > lMemoryDB > > FUNCTION arrayToSQLite pArrayDataA, pDBFile, pDBName, pDBID > put the keys of pArrayDataA into tArrayKeys > sort tArrayKeys numeric ascending > IF pDBFile is empty THEN put ":memory:" into pDBFile > IF pDBName is empty THEN put "arraydata" into pDBName > > TRY > if pDBID is empty then \ > put revOpenDatabase("sqlite", pDBFile) into pDBID > > IF "Error" is in pDBID THEN > return empty > END IF > > put "drop table " & pDBName into tDropSQL > revExecuteSQL pDBID, tDropSQL > put the result into tResult > CATCH tError > answer tError > IF the environment is "development" THEN exit to top ELSE quit > END TRY > > -- create the table > put "create table" && quote & pDBName & quote \ > & cr into tCreateCommand > put "(" & quote & "recordid" & quote && "NUMERIC PRIMARY KEY UNIQUE, " \ > & cr AFTER tCreateCommand > > put the keys of pArrayDataA [1] into tRecordKeyList > > REPEAT for each line tRecordKey in tRecordKeyList > if pArrayDataA [1] [tRecordKey] is an array or \ > pArrayDataA [1] [tRecordKey] begins with "Salted__" then > put "BLOB" into tColumnType > else > put VARCHAR into tColumnType > end if > > put quote & tRecordKey & quote && tColumnType & "," && cr AFTER > tCreateCommand > END REPEAT > > delete char -3 to -1 of tCreateCommand > put ")" AFTER tCreateCommand > > TRY > revExecuteSQL pDBID, tCreateCommand > put the result into tResult > IF tResult is not 0 THEN breakpoint > CATCH tError > breakpoint > END TRY > > put 1 into tRecordCounter > put "recordid" & cr & tRecordKeyList into tColumns > > repeat with i = 1 to the number of lines of tColumns > put ":" & i into item i of tColumnList > end repeat > > put "(" & tColumnList & ")" into tColumnList > > -- insert data > REPEAT for each line tKey in tArrayKeys > put 1 into tColumnCounter > put pArrayDataA [tKey] into tRecordDataA > put tRecordCounter into tQueryDataA [1] > > REPEAT for each line tRecordKey in tRecordKeyList > add 1 to tColumnCounter > > if tRecordDataA [tRecordKey] is an array then > put arrayEncode(tRecordDataA [tRecordKey]) into tValue > else > put tRecordDataA [tRecordKey] into tValue > end if > > put tValue into tQueryDataA [tColumnCounter] > END REPEAT > > put "insert into" && pDBName && "VALUES" && tColumnList into tInsertSQL > > TRY > revExecuteSQL pDBID, tInsertSQL, "tQueryDataA" > put the result into tResult > if the result is not a number then breakpoint > CATCH tError > breakpoint > END TRY > > add 1 to tRecordCounter > END REPEAT > > return pDBID > END arrayToSQLite > > >> On Jun 3, 2022, at 15:04 , doc hawk via use-livecode >> <use-livecode@lists.runrev.com> wrote: >> >> A couple of lines of code with declarations, storing, and retrieving would >> probably help. >> >> >> There also might be a UTF issue (which would be beyond me)—a hash should be >> in good old 6.5 bit ASCII, not something newfangled with eight or more bits. >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode