加载中…
个人资料
MacGeek
MacGeek
  • 博客等级:
  • 博客积分:0
  • 博客访问:185,267
  • 关注人气:90
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ExecuteSQL函数

(2012-04-12 12:53:44)
标签:

filemaker

分类: FileMaker函数

FileMaker Pro 12添加了一个很重要的函数,就是ExecuteSQL,这个函数可以直接执行SQL语句获取FileMaker表中的数据。

函数原型:

ExecuteSQL(sqlQuery; fieldSeparator; rowSeparator {;arguments...})

参数:

sqlQuery:查询数据的SQL语句。SQL语句中可以使用Union和Where进行联合查询和条件查询。使用?来进行指定条件查询的参数。

fieldSeparator:字段分隔符。如果返回的结果包含多个字段,则使用这个参数指定一个字段分隔符。

rowSeparator:行分隔符。如果返回结果包含多个行,则使用这个参数指定一个行分隔符。

arguments:查询参数。主要是在使用Where子句时指定动态参数使用。

返回值类型:字符串

解释:ExecuteSQL函数不能使用诸如Create,Update,Delete等SQL语句对FileMaker表结构进行修改。只能进行数据查询。

如果返回是日期和时间,返回值的格式遵循SQL标准而不是FileMaker中定义的格式。

如果查询过程有误FileMaker返回?作为结果。

ExecuteSQL不认识FileMaker中定义的表关系,所以用户可以自行定义表关系进行相应的查找,ExecuteSQL中定义的表关系与FileMaker中定义的互不影响。

需要注意的是SQL语言是有保留字的,所以在定义FileMaker表时最好不要使用SQL保留字作为表名,字段名,否则在执行ExecuteSQL时会出错。

例如,定义表名叫Table,字段名叫Date。执行ExecuteSQL(“select Date from Table”;“”;“”)时就会出错,需要改为ExecuteSQL(“select \“Date\" from \"Table\"”;“”;“”)才可以。

还有一点就是很多FileMaker开发者习惯在表名或者字段名前面加下划线,比如_Table,_Field。这样也是不能直接用在ExecuteSQL中的,也需要加反斜杠引号:ExecuteSQL("select \"_Field\" from \"_Table\""; ""; "")

这里是SQL保留字列表:http://www.sql.org/sql-database/postgresql/manual/sql-keywords-appendix.html

为了更好的理解FileMaker支持哪些SQL语句,我做了一个测试文件,里面依据http://www.w3school.com.cn/sql/index.asp W3C School SQL部分进行了依次验证:

http://vdisk.weibo.com/s/41DDt

关于SQL语句的使用和各个关键字的意思,请仔细阅读W3C School的SQL部分,强力推荐~

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有