2021-03-03 12:21题主

为什么参数类型为varchar(或用默认 (?demo?))?

try {
  app.set({
    demo: "admin"
  });
  app.send(app.getRecord("SELECT * FROM DBO.WB_USER WHERE 1 = 1 AND USER_ID = {?varchar.demo?}"));

} catch (e) {
  throw e;
}

sql后台处理:
exec sp_executesql N'SELECT * FROM DBO.WB_USER WHERE 1 = 1 AND USER_ID = @P0        ',N'@P0 nvarchar(4000)',N'admin'
为什么参数类型为varchar(或用默认 (?demo?)),
sql还是以nvarchar 处理呢?写法有什么问题吗?
2021-03-04 09:59#1
对于参数类型为varchar/nvarchar的可以省略{?varchar.param?}中的varchar为{?param?}
2021-03-04 12:29#2
现在要强制参数为varchar类型,有办法吗?
2021-03-05 09:16#3
varchar/nvarchar都是varchar
2021-03-15 09:00#4
jdbc参数不区分varchar/nvarchar
2021-03-15 10:41#5
经实验,在sqlserver连接url后面加上 sendStringParametersAsUnicode=false,变成:
url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=wb;sendStringParametersAsUnicode=false"

使用默认的 参数 {?demo?},会以varchar类型传入。

返回开发者社区