PDA

View Full Version : اضافه کردن رکورد



amir master
چهارشنبه 03 خرداد 1385, 10:04 صبح
من میخوام یه رکورد جدید به بانک اضافه کنم
حالا از خطی که شی recordset رو باز میکنم ایرد میگیره این خط هم یه این صورت نوشتم:
objrs.open "mytable",objconn,,adLockPessimistic ,adcmdtable
لطفا منو راهنمایی کنید
مچکرم

reza_rad
چهارشنبه 03 خرداد 1385, 10:46 صبح
شما باید این رو استفاده کنید:


objrs.open "selece * from mytable",objconn,,adLockPessimistic ,adcmdtable


و یک نکته :
پیشنهاد می کنم حتما یک کتاب بگیرید و transact sql رو مطالعه کنید.
هم جواب بسیاری از سوالاتتون رو میگیرید و هم سردرگم نمی شید.

archangel
چهارشنبه 03 خرداد 1385, 11:05 صبح
نه. لزومی به این تغییر و استفاده از پرس و جوی SELECT * FROM mytable نیست. مشکل از جای دیگه است. اما باید متن دقیق پیغام خطا رو بگید تا بتونیم کمکتون کنیم امیر آقا.

توصیه می‌کنم با استفاده از On Error، خطا رو ردگیری کنین.



On Error Resume Next
.
.
.
objrs.open "mytable",objconn,,adLockPessimistic ,adcmdtable
If Err.Number <> 0 Then
Response.write Err.Description
End If
.
.
.

amir master
چهارشنبه 03 خرداد 1385, 13:32 عصر
من هردو کارو انجام دادم ولی باز هم فایده ای نداشت
و اصلا توضیحی در مورد خطا هم نداد مشکل عجیبیه
حالا من این برنامه رو اینجا میزارم ببینید مشکلش چیه بعد واسه ما هم بگید

<%@language=vbscript%>
<!...#include file="adovbs.inc"...>
%>
on error resume next
dim objrs,objconn
(" set objconn =server.CreateObject ("adodb.connection
objconn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\db1.mdb;Persist Security Info=False "
objconn.Open
(" set objrs=server.CreateObject("adodb.recordset
objrs.open "selece * from mytable",objconn, ,adLockPessimistic
if error <>0 then
Response.write Err.Description
end if
objrs.AddNew
abjrs("name")="satar"
abjrs("family")="sataree"
abjrs("ID1")="76"
abjrs("birthday")="1/1/1"
objrs.Update
objrs.MoveFirst
objrs.Close
set objrs=nothing
set objconn=nothing
<%
حالا ما با این برنامه نمیدونیم چیکار کنیم
از خط شماره 10 ایراد میگیره

archangel
چهارشنبه 03 خرداد 1385, 22:20 عصر
اگه کُد شما دقیقاً همین باشه که چندین خطا داره!
اولاً به نظرم برای include کردن فایل adovbs.inc به صفحه‌ات باید از تگ <-- ... --!> استفاده کنی.



<!--#include file="adovbs.inc"-->


ثانیاً در انتهای خط objrs.open پارامتر adCmdTable رو فراموش کردی.



objrs.open "mytable",objconn, ,adLockPessimistic,adCmdTable


ثالثاً برای خطاگیری باید بنویسی if Err.Number <> 0 Then. نه if error <> 0 Then! توی asp فکر نمی‌کنم چیزی به اسم error داشته باشیم!

و رابعاً! این طور یادم میاد که وقتی از حالت adCmdTable استفاده می‌کنی و رکوردست رو به صورت جدولی باز می‌کنی، مکان‌نمات فقط می‌تونه رو به جلو حرکت کنه (forward-only می‌شه). لذا نمی‌تونی از دستور objrs.MoveFirst استفاده کنی. اگه می‌خوای بعدش مکان‌نمات رو تغییر بدی باید از یه نوع رکوردست دیگه استفاده کنی. مثل خط زیر:



objrs.open "mytable",objconn,adOpenKeySet,adLockPessimistic


از غلط‌های تایپی‌ات هم صرفنظر می‌کنیم.:چشمک:

در کل من یه دور کُد شما رو با اعمال تصحیحاتی که به نظرم می‌رسید تغییر دادم و مجدداً می‌نویسم. اینو امتحان کن ببین چه نتیجه‌ای می‌گیری:



<%@language=vbscript%>
<!--#include file="adovbs.inc"-->
<%
on error resume next
dim objrs,objconn
set objconn =server.CreateObject ("adodb.connection")
objconn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\db1.mdb;Persist Security Info=False "
objconn.Open
If Err.Number <> 0 Then
Response.write "Can not establish connection<br>"
Response.Write Err.Description & "<br>"
Else
set objrs=server.CreateObject("adodb.recordset")
objrs.open "mytable",objconn,adOpenKeySet,adLockPessimistic
If Err.Number <> 0 then
Response.Write "Can not open database<br>"
Response.Write Err.Description
Else
objrs.AddNew
If Err.Number <> 0 Then
Response.Write "Can not add a new record to the table 'mytable'<br>"
Response.Write Err.Description & "<br>"
Els
objrs("name")="satar"
objrs("family")="sataree"
objrs("ID1")="76"
objrs("birthday")="1/1/1"

objrs.Update
If Err.Number <> 0 Then
Response.Write "Can not update table 'mytable'<br>"
Response.Write Err.Description & "<br>"
Else
Response.Write "Adding the new record to table 'mytable' succeeded!<br>"
End If
End If
objrs.close
End If
End If
set objrs=nothing
set objconn=nothing
%>


فقط حواست باشه که فایل adovbs.inc رو توی دایرکتوری‌ای که این صفحه‌ی asp ات هست داشته باشی.

good luck :چشمک:

amir master
پنج شنبه 04 خرداد 1385, 06:41 صبح
دست شما درد نکنه
پس فقط مشکل اصلی من اونجا بود که از adOpenKeySet استفاده نکرده بودم