PDA

View Full Version : سوال درباره SQL



bebakhshid
دوشنبه 06 بهمن 1382, 17:18 عصر
چرا sql زیر درست است و اینquotationبرای چیچیه دقیق لطفا

query1.sql.add(' select * from country where continent= '''+radiobutton1.caption
+'''';(

i only use single quotation and order is 1,3,4

مهدی کرامتی
دوشنبه 06 بهمن 1382, 19:08 عصر
بابا آخه عزیز من، چند بار بگیم تیتر موضوع رو مرتبط بنویسید؟!؟

moradi_am
دوشنبه 06 بهمن 1382, 19:20 عصر
یعنی :
1-ابجکتی بنام query1 روی فرم وجود دارد و با این دستور جمله sql آن را از داخل برنامه و موقع اجرا مشخص میکنیم . و برای مواردی که میخواهیم بر حسب انتخاب کاربر جستجو را انجام دهیم مناسب است .
2- ابجکتی بنام radiobutton1 روی فرم وجود دارد که چند گزینه دارد و با این دستور برحسب انتخاب گزینه caption آنرا در sql استفاده میکند.
3- مفهوم جمله sql اینست : از table بنام country تمام رکوردهایی که محتویات فیلد continent آنها برابر با caption شیئ radiobutton1 باشد را نشان بده
4- i only use single quotation and order is 1,3,4 یک توضیح است و جزء دستور نیست .

البته آخر دستور باید پرانتز بسته شود .

bebakhshid
چهارشنبه 08 بهمن 1382, 19:16 عصر
با تشکر
حالا qoutationبرای چیه خیلی مهمه

moradi_am
چهارشنبه 08 بهمن 1382, 20:07 عصر
در دستورات sql باید ثابتها داخل quotation قرار گیرند و بجای استفاده مستقیم از ' ' میتوان از فانکشن زیر نیز استفاده نمود :

function QuotedStr(const S: string): string;
بنابراین دستور را میتوان بصورت زیر نوشت :

select * from country where continent= quotedstr(radiobutton1.caption);
آیا زیباتر نیست؟

Kambiz
چهارشنبه 08 بهمن 1382, 20:56 عصر
بنابراین دستور را میتوان بصورت زیر نوشت :

select * from country where continent= quotedstr(radiobutton1.caption);
آیا زیباتر نیست؟
نه فقط زیباتر بلکه روش صحیحتری هم هست. اگر داخل رشته Quotation وجود داشته باشه٬ تنها به این صورت می‌شه SQL صحیحی داشت.

Sepidar
چهارشنبه 08 بهمن 1382, 23:36 عصر
آقای DelphiArea عزیز

علت صحصیحتر بودن استفاده از فانکشن رو متوجه نشدم. میشه مثال بزنین؟

Kambiz
پنج شنبه 09 بهمن 1382, 13:20 عصر
فرض کنید جمله زیر رو می‌خوایم داخل یک جدول جستجو کنیم:

That's all!
خود این جمله دارای یک Quotation هست. بنابراین در هنگام داخل Quote قرار دادن این جمله٬ Quotation مربوط به خود جمله باید مانند زیر دو بار تکرار شود:

'That''s all!'
اگر این عبارت داخل متغیری باشد٬ صرفا" با چسباندن دو Quotation در ابتدا و انتها٬ Quotationهای داخل متغیر دو تایی نمی‌شوند در صورتیکه تابع QuotedStr این کار را انجام می‌دهد.

Sepidar
پنج شنبه 09 بهمن 1382, 13:43 عصر
خیلی ممنون.