PDA

View Full Version : راهنمايي: هر بار كه روي دكمه ثبت مي زنم اطلاعات وارد شده چه جديد و چه قديمي اضافه مي شود در بانك sql



ehsanbn
جمعه 19 تیر 1388, 11:50 صبح
با سلام

من در قسمتي از فرم برنامه كدي نوشتم كه كاربر با نوشتن اطلاعات در editهاي مختلف و زدن بر روي دكمه ثبت، آنچه كه در editها نوشته شده در بانك sql ذخيره شود. و اگر خواست دوباره يك ركورد ديگر را ثبت كند بايد روي دكمه ديگري بزند تا اطلاعاتي را كه قبل وارد editهاي مختلف شده پاك شود و سپس اطلاعات جديد را بنويسيد. مشكلي كه پيش در آمده اين است كه پس از هربار كه كاربر روي دكمه ثبت كليك مي كند علاوه اطلاعات جديدي كه بعد از پاك شدن editها وارد كرده است اطلاعاتي كه قبل از پاك كردن editها نوشته است نيز ثبت مي شود به عبارت ديگر به ازاي هر بار ثبت اطلاعات جديد، اطلاعات قبلي نيز وارد مي شود. هر كاري كردم نفهميدم مشكل چيه. كسي ميتونه منو راهنمايي كنه.

دستور مربوط به ثبت اطلاعات نوشته توسط كاربر: (برروي دكمه ثبت)
adoquery1.sql.add(format('insert into student(name,Lname,id)values(''%s'',''%s'')
,[edit1.text,edit2.texi]'));

vcldeveloper
جمعه 19 تیر 1388, 12:11 عصر
علتش اینه که با هر بار اجرای متد Add، یک دستور جدید به خصوصیت SQL مربوط به AdoQuery1 اضافه می کنید؛ یعنی در اولین اجرا خصوصیت SQL شما به این شکل هست:

insert into student(name,Lname,id)values(''%s'',''%s'')

در اجرای دوم:

insert into student(name,Lname,id)values(''%s'',''%s'')
insert into student(name,Lname,id)values(''%s'',''%s'')

و در اجرای سوم:

insert into student(name,Lname,id)values(''%s'',''%s'')
insert into student(name,Lname,id)values(''%s'',''%s'')
insert into student(name,Lname,id)values(''%s'',''%s'')

باید قبل از ویرایش خصوصیت SQL، دستور قبلی را پاک کنید (با استفاده از متد Clear، یا استفاده از خصوصیت Text بجای متد Add).