-----------------------------------摘抄于ArcGIS10帮助 查询文件地理数据库所使用的 SQL WHERE 子句语法与查询 coverage、shapefile 及其他基于文件的数据源的语法相同,但增加了一些功能,例如支持子查询。因此,WHERE 子句语法是有别于个人地数据库的。A
-----------------------------------摘抄于ArcGIS10帮助
查询文件地理数据库所使用的 SQL WHERE 子句语法与查询 coverage、shapefile 及其他基于文件的数据源的语法相同,但增加了一些功能,例如支持子查询。因此,WHERE 子句语法是有别于个人地数据库的。ArcGIS 中用于创建 SQL 表达式的对话框可帮助您对要查询的数据使用正确的 WHERE 子句语法,因为它们利用适当的分隔符列出字段名称和值。而且还为您选择相关的关键字和运算符。然而,如果为个人地理数据库中的某个图层定义了一条 WHERE 子句,则一旦将此图层的源数据移动到文件地理数据库之后,这条子句可能不会对同一图层起作用。以下是 WHERE 子句不起作用的可能原因:
用于个人地理数据库的 WHERE 子句语法 |
用于文件地理数据库的等效语法 |
---|---|
[STATE_NAME] = 'California' |
"STATE_NAME" = 'California' |
[OWNER_NAME] LIKE '?atherine smith' |
"OWNER_NAME" LIKE '_atherine smith' |
[STATE_NAME] = 'california'(需要进行不区分大小写的搜索时) |
LOWER("STATE_NAME") = 'california' |
UCASE([LAST_NAME]) = 'JONES' |
UPPER("LAST_NAME") = 'JONES' |
[DATE_OF_BIRTH] = #06-13-2001 19:30:00# |
"DATE_OF_BIRTH" = date '2001-06-13 19:30:00' |
WHERE 子句不起作用的另一个原因是,文件地理数据库支持的运算符和函数比个人地理数据库支持的要少,而且文件地理数据库只对子查询提供有限的支持。然而,这不太可能是 WHERE 子句不起作用的原因。文件地理数据库支持大多数可能需要使用的 WHERE 子句功能。
----------------------------ArcObject开发-------------------------
如果您用 ArcObjects 编写了一个应用程序,并想要将该应用程序访问的数据从个人地理数据库切换到文件地理数据库,可考虑以下操作:
<span>SET RENTAL_PRICE = (RENTAL_PRICE - 1.00)</span>)以及子查询。但 DELETE 语句不受限制;它支持文件地理数据库所支持的任何 WHERE 子句功能。
除这些差异之外,ArcObjects 在文件地理数据库上的工作方式与在个人地理数据库上是相同的。