PDA

View Full Version : مبتدی: روش کار دستور insert در بانک access



iman_esfahani
سه شنبه 24 دی 1398, 08:04 صبح
سلام وقتتون بخیر یه برنامه نوشتم با زبان دلفی که با ADOQuery کار میکنه همش ولی بانکم قبلا SQLSERVER بوده الان تغییرش دادم به اکسس
هر کاری میکنم دستور Insert و Locate تو این برنامه کار نمیکنه ممنون میشم روش نوشتن این دستورات و بهم بگین
ADOQuery2.SQL.Clear;
ins:=ADOQuery2.SQL.Add('Insert into TBL_Personal(ID,Name,Mobile,Note valuse('+QuotedStr(trim(Edit1.Text))+','+QuotedStr (Edit2.Text)+','+QuotedStr(Edit3.Text)+','+QuotedS tr(Edit4.Text)+')');
ADOQuery2.SQL.Add(ins);
ADOQuery2.ExecSQL;
این کد منه واسه insert

mafazel
یک شنبه 29 دی 1398, 14:26 عصر
سلام، وقت شما هم به خیر
کد شما اینه (از تگ # توی پست برای کد نوشتن استفاده کنید.):

ADOQuery2.SQL.Clear;
ins:=ADOQuery2.SQL.Add('Insert into TBL_Personal(ID,Name,Mobile,Note valuse('+QuotedStr(trim(Edit1.Text))+','+QuotedStr (Edit2.Text)+','+QuotedStr(Edit3.Text)+','+QuotedS tr(Edit4.Text)+')');
ADOQuery2.SQL.Add(ins);
ADOQuery2.ExecSQL;

چیزهایی که من به نظرم میرسه:
-بعد از Note یه پرانتز بسته "(" لازمه
- املای کلمه Values باید تصحیح بشه
-معمولا فیلد ID توی اکسس از نوع عددی و AutoIncrement هستش و شما نباید به اون مقدار بدید. اگر هم خودتون تعریف کردید، ID معمولا عددیه و نباید با QuotedStr بعنوان رشته بهش مقدار بدید.
-نمیدونم چرا اینطوری از متغیر ins استفاده کردید. (شاید اشتباه کپی پیست بوده) دو بار Add رو استفاده کردید.
اگر ID همونطور باشه که شما تعریف کردید کدی شبیه به زیر نباید مشکلی داشته باشه:


ins := 'Insert into TBL_Personal(ID,Name,Mobile,Note) values('+QuotedStr(trim(Edit1.Text))+','+QuotedStr (Edit2.Text)+','+QuotedStr(Edit3.Text)+','+QuotedS tr(Edit4.Text)+')');
ADOQuery2.SQL.Text := ins
ADOQuery2.ExecSQL;

دستور Locate هم قلق خاصی نداره مثلا یه همچین چیزی:

Table1.Locate('Name',Edit2.Text,[]);