node-sqlserver-v8
node-sqlserver-v8 copied to clipboard
AlwaysEncrypted input column in PreparedStatement type clash
I am using msnodesqlv8 4.2.1 with mssql 11.0.1
When using AlwaysEncrypted input column in PreparedStatement, the parameter seems to not be sent with a size. The column in database is nvarchar(128), and following is my code:
const ps = new sql.PreparedStatement(pool)
ps.input('name', sql.NVarChar(128));
await ps.prepare('select TOP 10 name from tbl_emp WHERE name=@name');
result = await ps.execute({ name: 'test' });
The error I received is:
[Error: [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Operand type clash: nvarchar is incompatible with nvarchar(128) encrypted with (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'XXX', column_encryption_key_database_name = 'XXX')]
This is on Linux msodbcsql18.
Redacted Error:
at handleError (/opt/nodeprojects/msnodesql/node_modules/mssql/lib/msnodesqlv8/request.js:276:21)
at StreamEvents.emit (node:events:517:28)
at StreamEvents.emit (node:domain:489:12)
at /opt/nodeprojects/msnodesql/node_modules/msnodesqlv8/lib/reader.js:83:20
at Array.forEach (