PDA

View Full Version : سوال: ویرایش همزمان دو جدول با ado.edit



mf4arman24
پنج شنبه 25 فروردین 1390, 17:58 عصر
سلام به کاربران عزیز
من یه ساعتی تالار رو چک کردم ولی خوب جواب خودم رو پیدا نکردم . به همین دلیل تایپیک زدم(قابل توجه مدیر های عزیز و مهربان)

من دوتا جدول اکسس دارم .
می خواهم یه تعداد از اطلاعات را از جدول 1 به جدول 2 بفرستم اگر در جدول 1 موجود بود تو دو تا جدول تو همون سطر که پیدا کرده ویرایش انجام بده .
form1.adoquery1=جدول 2
adoquerysh= جدول 1

ولی خوب خطا میده.(البته تو جدول form1.adoquery1 ویرای انجام می شه ولی در جدول adoquerysh نمایش می ده(در dbgraid) ولی ذخیره نمی شه و بعد خطا میده)
هر کدوم هم با ADOConnection1 جداگونه به جداول خودشون متصل شدن:گیج:

فکر کنم میگه همزمان نمی تونه . اگه درست فهمیده باشم:اشتباه:
این کدی که نوشتم.
تو پست بدی می زارم

mf4arman24
پنج شنبه 25 فروردین 1390, 17:58 عصر
procedure TForm14.sButton1Click(Sender: TObject);
begin

ADOQuerysh.Active:=false;
ADOQuerysh.SQL.Clear;
ADOQuerysh.SQL.Add('select * from nezaratshahrestan');
ADOQuerysh.Active:=true;



ADOQuerysh.First;

while not(ADOQuerysh.Eof)do begin

form1.adoquery1.Active:=false;
form1.adoquery1.SQL.Clear;
form1.adoquery1.SQL.Add('select * from nezarat where (shomaregh='''+ADOQuerysh.FieldByName('shomaregh') .AsString+''') and (codemeli='''+ADOQuerysh.FieldByName('codemeli').A sString+''') ');
form1.adoquery1.Active:=true;


if (form1.adoquery1.IsEmpty=false) then
begin

form1.ADOQuery1.Edit;


form1.ADOQuery1.FieldByName('tedadenezarat').AsStr ing:=inttostr(strtoint(form1.ADOQuery1.FieldByName ('tedadenezarat').AsString)+1);

form1.ADOQuery1.FieldByName('vaziateejra').AsStrin g:=ADOQuerysh.FieldByName('vaziateejra').AsString;


form1.ADOQuery1.Post;


// showmessage('ok');

ADOQuerysh.Edit;
ADOQuerysh.FieldByName('motabeghat').AsString:='م طابقت دارد';
ADOQuerysh.FieldByName('beostanvaredshod').AsStrin g:='به استان وارد شد';

ADOQuerysh.Post;


end;


if (form1.adoquery1.IsEmpty=true) then
begin



// ADOQuerysh.Edit;
// ADOQuerysh.FieldByName('motabeghat').AsString:='م طابقت ندارد';
// ADOQuerysh.FieldByName('beostanvaredshod').AsStrin g:='وارد نشد';
//ADOQuerysh.Post;



end;



form14.ADOQuerysh.Next;



end;

end;

mf4arman24
پنج شنبه 25 فروردین 1390, 18:04 عصر
68735
فکر کنم line 42 خطا ده
این هم تصویر خطا . چطوری هر دوتا رو بدون خطا ادیت کنم.
حقیقتا من تو اداره ای سرباز امریه هستم .
اگه نرم افزار را کامل کنم یه مرخصی توپول می گیرم.
خداییش کمکم کنید.
ممنون

Mask
پنج شنبه 25 فروردین 1390, 22:35 عصر
من كه نفهميدم چي ميگي.
سعي كن براي اينكه خواننده متوجه توضيحاتت بشه. از كلمات صحيح استفاده كنيد....
منظور از جدول چيه؟
سعي كنيد از ركورد و فيلد براي توضيحاتتون استفاده كنيد.
كدتون رو خوندم.
كلي اشتباه داريد
اول اينكه وقتي ميخواهيد sql كوئري رو اصلاح كنيد. نياز نيست اكتيوش رو false كنيد.
مورد بعدي :بعد از ست كردن مقدار sql براي كوئري بايد اونو open كنيد.
مورد بعدي : نبايد دوتا كاري رو كه انجام ميديد در يه حلقه بزاري . بايد از 2 تا حلقه استفاده كنيد.
مورد بعدي :بعد از كوئري گرفتن بايد براي اطمينان يه first انجام بديد.
و ...
اين مشكلات رو رفع كن... اگه نتونستي بگو تا برات بنويسمش.

mf4arman24
پنج شنبه 25 فروردین 1390, 22:48 عصر
من دو تا tabel از نوع اکسس دارم.
در برنامه با دو تا adoconnection به tabel ها وصل شدم.
دوتا adoquery دارم .
می خواهم یه رکوردی که مثلا فیلد کد ملی آن با رکورد دیگه مشترک هست رو همزمان ویرایش کنم.
من بهتر از این بلد نیستم.

Saeid59_m
پنج شنبه 25 فروردین 1390, 23:17 عصر
دوست عزیز

1- اگه دو جدول توی یک دیتابیس قرار داره که فقط از یک AdoConnection استفاده کن .
2- اگه صورت مسئله رو بگی شاید بهتر بشه راهنمائی کرد . حقیقتش با این مواردی که نوشتی من متوجه نشدم می خوای چکار کنی ؟

mf4arman24
جمعه 26 فروردین 1390, 00:31 صبح
اولاً از لحن نوشتن شما کاربر محترم Saeid59_m (http://barnamenevis.org/member.php?25604-Saeid59_m) تشکر می کنم.
ثانیا مشکل رفع شد و اون هم از این بود که طول فیلد را کم گرفته بودم و اطلاعاتی که وارد می کردم در زمان ادیت بیشتر بود که رفع شد.
در هر صورت ممنون که راهنمایی می کنید .
اصلا تایپیک یعنی همین. کمک به هم و انتقال تجربه ها