View Full Version : سوال: sql چیست؟
_abiriamir
پنج شنبه 31 اردیبهشت 1388, 21:32 عصر
دوستان عزیز
من در حال تهیه برنامه ای هستم که باید از AdoQuery استفاده کنم.
اما میدانید که برای activate کردن آن باید داده ای را در sql آن وارد کنیم اما چه چیزی؟؟؟؟؟؟؟:متفکر:
لطفا کمک کنید. شدیدا لازم دارم.
Ahmad Chehreghani
پنج شنبه 31 اردیبهشت 1388, 22:13 عصر
شما بايد دستورات SQL را توي اون بنويسيد.
به عنوان مثال کد زير تمامي رکوردهاي جدولي که نامش Table1 هست رو مياره.(البته اگر کانکشن رو تنظيم کرده باشيد)
Select * from Table1
توي سايت نمونه هاي زيادي هست فقط کافيه جستجو کنيد!
_abiriamir
شنبه 02 خرداد 1388, 13:15 عصر
البته یک جایی مشکل دارم
parameter را چکار کنم؟؟؟؟؟؟؟؟؟؟
Ahmad Chehreghani
شنبه 02 خرداد 1388, 14:15 عصر
منظورتون از پارامتر چيه؟
کد زير رکورد يا رکوردهايي که مقدار فيلد id آنها برابر Edit1.Text هستند رو نشون ميده.
شما کافيه يه جستجو توي سايت بکنيد...
ADOQuery1.Close;
ADOQuery1.SQL.Text:='select * from Table1 where id='+Edit1.Text;
ADOQuery1.Open;
mehdimdp
یک شنبه 03 خرداد 1388, 00:26 صبح
استفاده از پارامتر اجباري نيست.
منظورتون از پارامتر چيه؟
engehsan
یک شنبه 03 خرداد 1388, 10:00 صبح
منظورتون از پارامتر چيه؟
کد زير رکورد يا رکوردهايي که مقدار فيلد id آنها برابر Edit1.Text هستند رو نشون ميده.
شما کافيه يه جستجو توي سايت بکنيد...
ADOQuery1.Close;
ADOQuery1.SQL.Text:='select * from Table1 where id='+Edit1.Text;
ADOQuery1.Open;
ADOQuery1.Close;
ADOQuery1.SQL.Add('select * form tabel where id='+Edit1.Text+'');
ADOQuery1.ExecSQL;
بدون پارامتر كه نميشه . يعني ميشه معني نداره
vcldeveloper
یک شنبه 03 خرداد 1388, 10:08 صبح
ADOQuery1.ExecSQL;
قبلا هم گفتم، برای دستوراتی مثل SELECT نباید ExecSQL را فراخوانی کنید، بلکه باید کوئری را Open کنید.
engehsan
یک شنبه 03 خرداد 1388, 10:24 صبح
درست ميگي علي آقا . ممنون و شرمنده
به جاي ADoquery بهتره از ADO command استفاده كنيم .
ADOCommand1.CommandText := 'select * form tabel';
ADOCommand1.Execute;
نظر شما چي ؟
Ahmad Chehreghani
یک شنبه 03 خرداد 1388, 15:07 عصر
درست ميگي علي آقا . ممنون و شرمنده
به جاي ADoquery بهتره از ADO command استفاده كنيم .
وقتي از ADO command استفاده ميکنيد مثل اين هست که ADOQuery رو ExecSQL کنيد.
شما بايد همون کدي که بالا نوشتم رو اجرا کنيد
ADOQuery1.Close;
ADOQuery1.SQL.Text:='select * from Table1';
ADOQuery1.Open;
p_ooya
یک شنبه 10 خرداد 1388, 10:39 صبح
اگه sql شما قراره رکوردی (هایی) رو برگردونه باید از همین کدی که جناب ahmad_che (http://barnamenevis.org/forum/member.php?u=12870) نوشته اند استفاده کنید (البته من با clear کار می کنم و نه close و راجع به close چیز زیادی نمی دونم). اگر sql شما رکوردی رو بر نمی گردونه (مثل دستور truncate) باید sql رو execute کنید و دیگه نیازی به open نیست.
من یه سوال از اساتید داشتم :
به صورت عملیاتی، تفاوت close و clear و همچنین sql.add و sql.text چیه؟
vcldeveloper
یک شنبه 10 خرداد 1388, 13:37 عصر
به صورت عملیاتی، تفاوت close و clear و همچنین sql.add و sql.text چیه؟
Clear مربوط به خصوصیت SQL موجود در AdoQuery هست. این خصوصیت یک TStringList هست، و متد Clear آن، لیست را خالی می کند. Close یکی از متدهای TAdoQuery هست برای بستن دیتاست.
وقتی شما دستور SQL جدیدی وارد می کنید، می توانید یا آن را به دستورات فعلی موجود در خصوصیا SQL اضافه کنید (با استفاده از Add)، یا دستور جدیدی را جایگزین دستور قبلی کنید. برای جایگیزینی دستور جدید با دستور قدیمی می تونید اول لیست را Clear کنید تا دستور قدیمی حذف شود، و بعد با استفاده از Add، دستور جدید را اضافه کنید.
Text کل محتوای لیست را بصورت string در اختیار شما قرار میده، به این ترتیب، شما با خصوصیت SQL مثل یک خصوصیت string رفتار می کنید. در این حالت، هر چیزی که به Text نسبت بدید، موجب حذف مقادیر موجود در لیست و جایگزین شدن مقادیر جدید میشه، پس نیازی به Clear هم پیدا نمی کنید. البته باید Close را قبلش فراخوانی کنید، چون تغییر خصوصیت SQL در دیتاستی که هنوز باز هست مجاز نیست.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.