我有一个附加到Xojo项目的SQLite数据库。我需要剥去第一个字符,如果它是一个引号。下面是我的尝试:
t=Chr(34)+"%" // this holds the Quote mark and the wild card
S="db.SQLExecute UPDATE "+ CurrentTableName + " SET " + Feilder +" = SUBSTRING("+Feilder+", 2, LEN("+Feilder+")) "
S=S+"WHERE "+Feilder+" LIKE "+t
db.SQLExecute S
我得到一个语法错误,即使没有WHERE子句。CurrentTableName
保存表名,Feilder
保存被求值的字段(或列)。
在SQLite中,这是我想做的:
UPDATE Table SET Myfield = SUBSTRING(Myfield, 2, LEN(MyField))
WHERE MyFiled LIKE "%
谢谢,埃里克。
是啊!固定它。由于
我的旧代码有S="db。SQLExecute UPDATE…之后我执行db。SQLExecure S
正如你从下面看到的,一个变化和…它的工作原理。S=现在以UPDATE命令开始,而不是以execute命令开始。
顺便说一句,如果它进入数据库字段,这段代码会去掉前面的引号。
t=Chr(34)+"%"
S="UPDATE "+ CurrentTableName + " SET " + Feilder +" = SUBSTR("+Feilder+", 2, LENGTH("+Feilder+")) "
S=S+"WHERE "+Feilder+" LIKE '"+t+"'"
db.SQLExecute S
谢谢Kyle的帮助。
选择子字符串的函数是subst(),而不是substring()。此外,您应该在"%…"("%")周围加上单引号。