PDA

View Full Version : سوال: سمیکالن بصورت پیش فرض



majid534
چهارشنبه 02 مرداد 1398, 14:50 عصر
سلام و وقت دوستان بخیر


sbatch1:variant;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select Max (AAA) From BBB');
ADOQuery1.SQL.Add('Inner join GGG on CCC = DDD');
ADOQuery1.SQL.Add('Where EEE=16 and FFF='+Edit16.Text);
ADOQuery1.Open;
sbatch1 := ADOQuery1.Fields[0].AsVariant;
Label34.Caption := sbatch1;

مشکل اینجاست که ادیت باکس16 که بالا هست متن داخلش باید تو سمیکالن باشه تا کوئری درست اجرا بشه ....

راهکاری هست ؟

ممنون از دوستان

یوسف زالی
جمعه 04 مرداد 1398, 13:48 عصر
سلام. اسم اون سمی کالن نیست، کوتیشنه.
بگذاریدش داخل QuotedStr
می تونید خودتون دستی قبل و بعدش کوتیشن اضافه کنید

fahimi
شنبه 02 شهریور 1398, 07:03 صبح
از پارامتر استفاده شود مطمئن تر و اصولی تر است


ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('INSERT INTO Country (Name, Capital, Continent, Area, Population)');
ADOQuery1.SQL.Add('VALUES (:Name, :Capital, :Continent, :Area, :Population)');

ADOQuery1.Parameters.ParamByName('Name').Value := 'SomePlace';
ADOQuery1.Parameters.ParamByName('Capital').Value := 'Pitsville';
ADOQuery1.Parameters.ParamByName('Continent').Valu e := 'Floating';
ADOQuery1.Parameters.ParamByName('Area').Value := 1234;
ADOQuery1.Parameters.ParamByName('Population').Val ue := 56;
ADOQuery1.ExecSQL;
ADOQuery1.Close;

// Open it to read the data back
ADOQuery1.SQL.Text := 'SELECT * FROM Country WHERE Name = :Name';
ADOQuery1.Parameters.ParamByName('Name').Value := 'SomePlace';
ADOQuery1.Open;
ShowMessage(ADOQuery1.FieldByName('Name').AsString );
ADOQuery1.Close;