我有一些基本的记录保存软件;我们正在尝试捕获电子邮件地址,支持软件无法捕获' @'登录。
尝试使用Visual FoxPro命令CHRTRAN搜索字段' UdidText'对于逗号','并用' @'替换它。登录。
当前的代码段显示为:
update [udids] set udidtext = CHRTRAN (udidtext, '%,%', '@') where udidno = '78' and udidtext != ''
简要说明;百分号是我首选的通配符。
编辑:检查我的应用程序中的代码时,该函数会产生错误"运算符/操作数类型不匹配"。
答案 0 :(得分:2)
CHRTRAN()不需要或不需要通配符。第二个参数是要替换的字符。所以试试:
CHRTRAN(uiditext, ',', '@')
玛
答案 1 :(得分:0)
根据chrtran()部分,它只是:
chrtran(uidtext, ',', '@')
您的代码可能会给您错误,因为udidno不是字符?可能你需要:
.. udidno = 78 ...
那里。
但是,除非ANSI为ON,否则您的代码根本不会进行任何替换。你有这个:
... and udidtext != ''
如果ANSI不是ON,那么该部分将解析为FALSE并且不会发生更新。要纠正它,你需要SET ANSI ON或更好地使用==这是ANSI免费的:
update [udids] set udidtext = CHRTRAN(udidtext, ',', '@') where udidno = '78' and !(udidtext == '')
以同样的方式='78'表示udidno以'78'开头的任何记录。如果您需要完全匹配,那么那将成为:
update [udids] set udidtext = CHRTRAN(udidtext, ',', '@') where udidno == '78' and !(udidtext == '')
最后一部分实际上是不必要的,所以它变成了:
update [udids] set udidtext = CHRTRAN(udidtext, ',', '@') where udidno == '78'
最后,你的udidno可能是一个数字:
update [udids] set udidtext = CHRTRAN(udidtext, ',', '@') where udidno = 78