【问题标题】:How do I use SQL UPDATE in Xojo to remove leading quotes如何在 Xojo 中使用 SQL UPDATE 删除前导引号
【发布时间】:2023-03-28 02:18:01
【问题描述】:

我有一个附加到 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 "%

谢谢,埃里克。

【问题讨论】:

    标签: sqlite realbasic xojo


    【解决方案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
    

    感谢凯尔的帮助。

    【讨论】:

      【解决方案2】:

      选择子串的函数是subst(),而不是substring()。此外,您应该在 "%...('"%') 周围加上单引号。

      【讨论】:

      • 这并没有解决问题,但我会看看我是否可以将它分成几部分,看看问题出在哪里。我确信您的 SUBST() 部分是有帮助的。谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-07
      相关资源
      最近更新 更多