我有一个附加到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 "%
谢谢,Eric。
答案 0 :(得分:1)
是啊!固定它。感谢
我的旧代码有S =" db.SQLExecute UPDATE ... 后来我执行db.SQLExecure S
正如你从下面看到的那样,一个改变......它有效。 S =现在以UPDATE开始,而不是执行命令。
顺便说一句,如果进入数据库字段,此代码会删除前导引号。而且只有领先的报价。 t=Chr(34)+"%"
S="UPDATE "+ CurrentTableName + " SET " + Feilder +" = SUBSTR("+Feilder+", 2, LENGTH("+Feilder+")) "
S=S+"WHERE "+Feilder+" LIKE '"+t+"'"
db.SQLExecute S
感谢Kyle的帮助。
答案 1 :(得分:0)
选择子字符串的函数是subst(),而不是substring()。此外,你应该在"%...('"%')周围加上单引号。