我要插入用户名的第一个字母和最后一个字母+ 2个随机数字以生成收据编号。我正在使用VBA通过ADODB SQL Server连接做到这一点。
即对于John Doe,将如下所示:JE43
INSERT INTO [dbo].[TEP_ReceiptID] ([ReceiptID]) Values (UCase(Left(Application.username, 1) & Right(Application.username, 1)) & cast(rand()*99 as int)))
问题是我遇到了与此逻辑相关的问题(此错误):
将varchar值'JE'转换为数据类型时,转换失败
帮助?
编辑
我尝试过:
INSERT INTO [dbo].[TEP_ReceiptID] ([ReceiptID]) Values (Cast(UCase(Left(Application.username, 1) & Right(Application.username, 1)) & cast(rand()*99 as int))) as nvarchar)
但这不能解决问题。
答案 0 :(得分:1)
您稍后要进行投射(在将“字符串”与“ int”连接起来之后),请尝试以下操作:
INSERT INTO [dbo].[TEP_ReceiptID] ([ReceiptID]) Values (UCase(Left(username, 1) & Right(username, 1)) & cast(cast(rand()*99 as int) as nvarchar))
答案 1 :(得分:0)
我不再参加VBA,但我认为您在括号中遇到了麻烦(在编辑代码中),请尝试以下操作:
(b,g,r) = cv2.split(specs)
indices = np.where(b == [0])
for i,j in zip(indices[0], indices[1]):
specs[i,j] = sub_face[i,j]