ورود

View Full Version : دستور



king_programmer
شنبه 17 اسفند 1387, 14:21 عصر
سلام.من يه بانك با access درست كردم.ميخوام يه دستور اس كيو ال بنويسم كه تو اين بانك select كنه.چيكار كنم.
از كمك همه دوستان ممنونم

acilios
شنبه 17 اسفند 1387, 16:53 عصر
با سلام.
شما میتوانید از یک کوئری به شکل زیر کمک بگیرید :

Adoquery.Close;
Adoquery.SQL.Clear;
Adoquery.SQL.Add('Select * From NAMEJADVAL');
Adoquery.Open;

در کد بالا به جای NAMEJADVAL نام جدولی که ایجاد کرده اید را بنویسید.

nasim984
یک شنبه 18 اسفند 1387, 09:05 صبح
with Adoquery do
Begin
Active:=False;
SQL.Text:='Select * From Table';
Active:=True;
End;

king_programmer
یک شنبه 18 اسفند 1387, 12:04 عصر
از كمك همه دوستان ممنون.اشكال من در Defult Value بود كه حل شد.من كد هاي اس كيو ال را نوشته بودم اما select نمي كرد و درستش كردم.باز هم از لطف شما ممنونم.

king_programmer
دوشنبه 19 اسفند 1387, 22:36 عصر
سلام.من اين كد رو استفاده ميكنم ولي به جواب نمي رسم.ميخوام هر چند تا ركورد تو اين جدول هست به جعبه ليست اضافه بشه.


VAR
i:integer;
j:integer;
begin

lstUser.Clear;

ADOQuery1.Active:=false;
ADOQuery1.SQL.Text :='select * from UserTable';
ADOQuery1.ExecSQL;
ADOQuery1.Active:=true;

i:= DataSource1.DataSet.RecordCount;

for j:=0 to i-1 do
lstUser.Items.Add(DataSource1.DataSet.Fields.Field s[j].AsString);


end;

shervin farzin
سه شنبه 20 اسفند 1387, 11:05 صبح
سلام
كدي كه شما نوشتيد چند اشكال داره :
از ExecSql فقط زماني بايد استفاده كنيد كه دستور SQL شما هيچ خروجي نداشته باشه ( مثل
Insert يا Update ... ) ولي چون شما Select انجام داديد و انتظار خروجي داريد بايد از Open
استفاده كنيد .
براي خوندن اطلاعات از DataSet راههاي راحت تري هم هست ، هرچند كه ايده شما هم درسته
فقط به شرطي كه داخل حلقه For بعد از خوندن مقادير اشاره گر داده رو يك واحد به جلو
حركت بديد :

DataSource1.DataSet.Next;

شما ميتونيد هم اشكالات همون كد خودتون رو رفع كنيد يا از اين كد استفاده كنيد :

lstUser.Clear;
with ADOQuery1 do
begin
SQL.Text:='select * from UserTable';
Open;
end;
while not ADOQuery1.Eof do
begin
lstUser.Items.Add(ADOQuery1.FieldByName('j').AsStr ing);
ADOQuery1.Next;
end;

موفق باشيد .

king_programmer
یک شنبه 02 فروردین 1388, 10:44 صبح
سلام. سال نو بر همه شما عزيزان مبارك.اميدوارم سال خوبي داشته باشيد.
من يك جدول دارم كه فيلد هاي userName,Password,database,Books,editBook,...... رو داره.
وقتي ميخوام جدول رو آپديت كنم اين پيغام خطا رو ميده.فيلدها همه از نوع رشته اي ميباشند.
Syntax Error in UPDATE Statement
اين هم كد آپديت من كه خيلي لازمش دارم.از كمك همگي ممنونم.


with ADOQuery1 do
begin

SQL.Text:='update UserTable set UserPassword = '+QuotedStr(txtPassword.Text)+
' ,Database ='+QuotedStr(Database)+' , Books='+QuotedStr(Books)+' , EditBooks='+
QuotedStr(EditBooks)+' ,Student='+QuotedStr(Student)+' ,Amanat='+QuotedStr(Amanat)+
' ,Nashriyat='+QuotedStr(Nashriyat)+' , Maghalat='+QuotedStr(Maghalat)+' , Report='+
QuotedStr(Report)+' , Setting='+QuotedStr(Setting)+' , Skin='+QuotedStr(Skin)+' , User='+
QuotedStr(User)+' , Task='+ QuotedStr(Task)+' where UserName = '+QuotedStr(txtUserName.Text);
ExecSQL;

end;

daffy_duck376
یک شنبه 02 فروردین 1388, 12:52 عصر
کد شما به نظر درست میاد ، اما برای اینکه مقادیر به quary پاس بدید بهتره از پارامتر استفاده کنید . چون تو این کدهایی که نوشتید ممکنه توی داده های فارسی به مشکل بخوره . کد رو به این شکل تغییر بدید ببینید چی میشه :

with ADOQuery1 do
begin

SQL.Text:='update UserTable set UserPassword = :password)+
...........
parameter[0].value = passwordtxt.text;
........
ExecSQL;

end;

king_programmer
یک شنبه 02 فروردین 1388, 14:41 عصر
دوست عزيز daffy_duck376 ممنون از شما ولي كد شما هم جواب نداد.كدي كه من نوشتم براي جدول اس كيو ال جواب ميده اما براي اكسس جواب نميده . مشكل من از كجاست؟ از كمك دوستان ممنون

king_programmer
دوشنبه 03 فروردین 1388, 10:12 صبح
كسي ميتونه مشكل منو حل كنه؟
من خيلي به اين كد احتياج دارم. از شما خواهش ميكنم كمكم كنيد.ممنون

king_programmer
سه شنبه 04 فروردین 1388, 14:05 عصر
مثل اینکه کسی نمیخواد جواب ما رو بده!!!!

Modernidea
سه شنبه 04 فروردین 1388, 19:27 عصر
سلام سال نو مبارك
اول يك كاري بكن و بجاي = از عبارت Like استفاده كن ببين ميشه يا نه.
من منتظر بودم ديگر دوستان جواب بدن چون روش من آماتور است ولي به هر حال من به جاي Update از يك select و يك edit و Post استفاده ميكنم.
به اينصورت كه اگر از روي يك DBGrid ركورد موردنظر رو انتخاب كني نيازي به Select نيست و من فرض رو براين ميگيرم كه شما select رو انجام دادي يا با DBGrid روكورد را انخاب كردي و ما ركود جاري و ويرايش يا Update ميكنيم.

UserTable.Edit;
UserTable.FieldByName(UserPassword).AsString:= txtPassword.Text;
.
.
.//بقيه فيلد ها رو نيز به صورت فوق انجام ميديد
UserTable.Post;


اميد وارم مفيد بوده باشه.

daffy_duck376
پنج شنبه 06 فروردین 1388, 08:51 صبح
مشکل شما کمی غیر عادی هست ! بانک رو upload کن تو سایت یه نگاهی بهش بندازم

hadisalahi2
پنج شنبه 06 فروردین 1388, 09:56 صبح
مشکل شما کمی غیر عادی هست ! بانک رو upload کن تو سایت یه نگاهی بهش بندازم
با سلام به همه دوستان فکر نکنم ربطی به بانک اطلاعاتی داشته باشه.
الحاق رشته ها در دستورات SQL باعث طولانی شدن کد و همچنین سردرگمی میشه.
به جای اون از پارامتر استفاده کن البته دستور زیر رو هم امتحان کن.



AdoQ.SQL.Text:='select * from Table1 where Code=:a';
AdoQ.Parameters.ParamByName('a').Value:=Value1;

البته به جای دستور Select شما دستور خودت رو بگذار.
من پیشنهاد میکنم که به جای استفاده از دستور Update ، رکوردها رو مستقیم داخل ADQQuery ویرایش کن. حالا یه نگاهی به کد زیر بنداز. امیدوارم مشکلت حل بشه



ADOQuery1.Edit;
ADOQuery1['ID']:=CodeEdit.Text;
ADOQuery1['Name']:=NameEdit.Text;
ADOQuery1['Family']:=FamilyEdit.Text;
ADOQuery1['FatherName']:=FatherEdit.Text
ADOQuery1.Post;

یا حق

king_programmer
شنبه 08 فروردین 1388, 14:03 عصر
مشکل شما کمی غیر عادی هست ! بانک رو upload کن تو سایت یه نگاهی بهش بندازم

اين هم بانك با كاربر Admin و رمز ورود 123123
http://www.4shared.com/file/95422114/4861f06b/_UP.html

king_programmer
شنبه 08 فروردین 1388, 14:04 عصر
دوست عزيز chatbaz. من ميخوام از adoTable استفاده نكنم.بايد از query استفاده كنم.

Modernidea
شنبه 08 فروردین 1388, 17:21 عصر
دوست عزيز chatbaz. من ميخوام از adoTable استفاده نكنم.بايد از query استفاده كنم.

مشكلي نيست. كدي كه من نوشتم هم براي adotable استفاده ميشه و هم براي AdoQuery.
و همچنين كاملا شبيه به كدي است كه آقاي hadisalahi2 نوشتن. يعني بجاي Update ، ويرايش ميكنه.

ياهوو

mahdidr
چهارشنبه 12 فروردین 1388, 15:07 عصر
سلام .
من می خواستم بدونم چطوری میشه یک عکس رو توی اس کیو ال ذخیره کرد و با دلفی ازش استفاده کرد لطفا اگه کدی دارید بذارید ممنون می شم

Modernidea
چهارشنبه 12 فروردین 1388, 17:21 عصر
سلام .
من می خواستم بدونم چطوری میشه یک عکس رو توی اس کیو ال ذخیره کرد و با دلفی ازش استفاده کرد لطفا اگه کدی دارید بذارید ممنون می شم

سلام
اين مسئله هيچ ربطي به اينجا نداره.
يه جستجوي كوچولو توي همين سايت بكني ضرري نداره چون ده يا حتي پانزده هزار باري در اين مورد بحث شده.
ياهوو.