Я никогда не пытался работать с Unicode и использовать SQL-Server ... Однако, что касается предотвращения SQL-инъекций в VFP при использовании SQL-Passthrough (SQLConnect (), SQLExec () и т. Д.), Если вы напишите свой запрос с "?" заполнитель, он будет смотреть на переменную из VFP ... например,
myField = 0x123 && or whatever hex value... VFP leading with 0x implies hex
myKey = "whatever"
cSQLCmd = "update SomeTable set Field1 = ?myField where SomeKey = ?myKey"
nSQLHandle = sqlconnect( YourConnectionStringInfo )
SQLExec( nSQLHandle, cSQLCmd )
sqldisconnect( nSQLHandle )
VFP будет обрабатывать? параметры для вас по соответствующим именам найденных переменных, которые доступны. Теперь, несмотря на все сказанное, VFP был основан только на 32 битах и не верит, что он распознает значения "Unicode". Вам может понадобиться создать хранимую процедуру в SQL, которая принимает два шестнадцатеричных значения (или что-то еще), вызывать их и передавать, как требуется.