المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : سؤال هام بخصوص استخدام functions لغة sql ضمن arcgis



عبادة مالك
10-14-2010, 08:40 AM
http://dc12.arabsh.com/i/02160/w1qjiykss40b.bmp (http://arabsh.com/w1qjiykss40b.html)

نجد جمال
10-14-2010, 08:45 PM
الاخ عبادة نعم يستخدم نفس قواعد البينات ولكن عملية الاستعلام تختلف عن المألوفة في شكلها ولكن تعطي نفس النتيجة وذلك يعود للاسباب التالية:
1- في الارك جمل SQL نستخدم اسم الحقل بين " وذلك حتى يميز اسم العمود عن اسم البيانات حتى لو كان هناك تكرار في البيانات
يتم معرفة بان الذي بين " " هو حقل حتى لو كان اسم الحقل من الاسماء المستخدمة في SQLبمعنى كلمة محجوزة.


فمثلا لو كان اسم الحقل كالتالي: select
فكلمة selectمحجوزة ولكن في الارك يمكن ان تكن اسم عمود وتستخدم في الاستعلام

select "select"from USA

وباتالي عرف ان select اسم عمود وليس جملة مجوزة او متغير

وهي مهمة اذا كان هناك تكرار في البيانات..........

وقد تعتمد الصيغة على نوع البيانات

فمثلا

If you're querying any file-based data such as a file geodatabase, ArcSDE geodatabase data, or data in an ArcIMS feature class or ArcIMS image service sublayer, you can enclose field names in double quotes:

area""

اما في

If you're querying personal geodatabase data, you can enclose fields in square brackets:

[AREA]

وكما تعلم ان الارك ليس بيئة عمل database

مثل الاوركل وال سيكول وغيرها...

وقد قامو بهذا التعديل ليتجنبو الا خطاء في الاستعلام وتكون خاصة بهم

عبادة مالك
10-15-2010, 05:37 PM
جزاك الله خيرا ....لكن لدي مداخلة ....ضمن مربع حوار select by attribute والذي يظهر من القائمة المنسدلة لشريط الادوات الرئيسي ضمن شاشة arcmap من selection ---select by attribute
نرى ان اسم العامود (الحقل ) يوضع بين square brackets [] ,وايضا عند فتح احد جدوال الصفات لطبقة ما وبالزر اليمين ثم اختيار field calculate لاحد الاعمدة نلاحظ ايضا ان اسم العامود يوضع ضمن square brackets [] ..
...لكن ما اريد توضيحه والذي لم يتم توضيحه في ردك الكريم ...
لماذا عندما نريد استبدال قيمة نوعها نص text بقيمة نصية اخرى text نستخدم double quotations وليس single quotation كما هو الحال في الاوراكل

ماهر عبدالكريم
10-26-2010, 11:22 AM
عزيزي عبادة
ان هذه الخاصية قد تم بناء ArcGIS لاستخدامها حيث يمكنك كما ذكرت استخدام Single qoute في Query و لكن لا يمكنك في Calculate لقد تم الاشارة لهذا الامر في موقع ESRI
SQL reference for query expressions used in ArcGIS
Resource Center

This topic describes the elements of common queries used in selection expressions in ArcGIS. Query expressions in ArcGIS use common SQL syntax.
CautionCaution:

SQL syntax does not work for calculating fields using Field Calculator.
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00s500000033000000.htm

ان الفكرة من استخدام "" او [] ليس المكانيو و انما للتمييز و خصوصا فيما يتعلق بالكلمات المحجوزة لقواعد البيانات
To specify a field in a SQL expression, you only need to provide a delimiter if the field name would otherwise be ambiguous, such as if it were the same as a SQL reserved keyword. For examples, see Reserved Keywords for SQL Server 2000.

Since there are many reserved keywords, and new ones can be added in subsequent releases, a good practice is to always enclose a field name with a delimiter.