View Full Version : عدم توانایی در استفاده از ODBC
Hamid_PaK
شنبه 11 تیر 1384, 13:12 عصر
آقا من یه هاست دارم که ODBC داره و یا Access به بانکم کانکت شدم تا اینجا خوب بود
ولی نتونستم که یه رکورد و پیدا کنم و تغییرش بدم مشکل کجاست ؟؟؟
M-Gheibi
شنبه 11 تیر 1384, 19:24 عصر
سلام
دوست عزیز این پست شما رو برای نظم بیشتر به تاپیک جدید تفکیک کردم.
ضمنا لطفا دقیقتر بگید مشکلتون کجاست.
saeedkhan
شنبه 11 تیر 1384, 19:51 عصر
فکر کنم permision write ندادید :flower:
Hamid_PaK
شنبه 11 تیر 1384, 23:26 عصر
ببینید دوست عزیز مشکل اینجاست که من با یه رکورد ست نتونستم یه رکورد خاصی رو پیدا کنم !!!
با SQL هم ست کردم فقط تو IIS کار می کنه ؟؟؟؟ :(
یه مثال کامل برای دسترسی و تغییر اطلاعات یک رکورد در یک دیتابیس Access روی هاست Windows Pro می تونه مشکلم و حل کنه !!!
Hamid_PaK
یک شنبه 12 تیر 1384, 23:06 عصر
function dataCHK(proCode,serCode,dbName)
dim OBJConn,RecSet,Counti
set OBJConn = Server.CreateObject("ADODB.Connection")
OBJConn.Open ("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(dbName))
**** set RecSet = OBJConn.Execute (" Select * From Keygen Where serCode = '" & serCode &"'" )
if RecSet("serCode") = serCode then
if RecSet("basCode") = basCodeR(serCode) then
Counti = Int(RecSet("count"))
if Counti < 2 then
dataCHK = regCode(proCode)
Counti = Counti + 1
OBJConn.Execute (" Update Keygen Set count = '" & Counti & "' Where serCode = '" & serCode & "'")
else
dataCHK = "no license"
end if
end if
else
dataCHK = "no serCode"
end if
set RecSet = nothing
set OBJConn = nothing
end function
خطا در قسمتی که با ستاره مشخص شده رخ میده ؟؟؟؟؟
چرا ؟؟؟؟
3nitro
یک شنبه 12 تیر 1384, 23:14 عصر
میشه متن خطا رو بنویسید . آیا serCode یک مقدار عددی هست ؟ اگر عدد هست از ' استفاده نکنید ببینید مشکل حل می شود یا خیر . باز هم تاکید می کنم آیا توضیحاتی در متن خطا وجود نداره ؟
Hamid_PaK
دوشنبه 13 تیر 1384, 11:55 صبح
نمیدونم مشکلش چیه Error اینه error '80020009' /process.asp, line 52 . . .
و دیگه اینکه مقدار SerCode حرف و ProCode عدد است !!!
آقا خیلی مهم هست خواهش می کنم کمک کنید :(
3nitro
شنبه 18 تیر 1384, 10:29 صبح
ببین من نمی دونم مشکلت دقیقا چیه چون error رو هم به صورت کامل نمی نویسی و نمی دونم چرا نمی نویسی. در ضمن در قطعه کد شما معلوم نیست serCode مقدار دهی شده یا نه ؟! بنابراین من پیشنهاد می کنم روش های مختلف رو امتحان کنید و اگر باز هم پیغام خطا دریافت کردید اون وقت باید یک فکر دیگه بکنید و خط به خط کدهاتون رو چک کنید . من فعلا این کد رو میذارم شما از این استفاده کنید ببینید نتیجه بخش هست یا خیر .
dim OBJConn
Set OBJConn = Server.CreateObject ("ADODB.Connection")
OBJConn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & Server.Mappath("db.mdb")
OBJConn.Open
dim RecSet
Set RecSet = Server.CreateObject ("ADODB.Recordset")
dim strsql
strsql = "Select * From Keygen Where serCode = '" & serCode &"'"
RecSet.Open strsql,OBJConn,3,3
تکمیل : البته فکر کنم باید کمی هم تغییرات در بعضی از قسمت های کدتون بدید که با کدهای من سازگاری کنه .
Hamid_PaK
یک شنبه 19 تیر 1384, 04:55 صبح
آقا من این رو هم تست می کنم ولی قبلا یه چیزی تو این مایه ها نوشته بودم .
می خوام بدونم امکانات (کامپوننت ها) روی هاست می تونن توی این مشکلات دخیل باشند ؟؟
(در ضمن جالبه که Error رو بصورت کامل نمی نویسه !!!)
3nitro
یک شنبه 19 تیر 1384, 12:45 عصر
آخه شما از کامپوننتی استفاده نکردید که . تازه شما گفته بودید سرورتون odbc پشتیابی می کنه .
Hamid_PaK
یک شنبه 19 تیر 1384, 14:11 عصر
آقا مشکل حل شد الان بطور کلی توضیح میدم که به درد دیگر دوستان هم بخوره :
1. این مشکل به نوع استفاده از ارتباط با دستابیس نبوده : ADODB
2. مشکل از نوع استفاده رکورد گیری هم نبوده : RecordSet
مشکل در نقطه ای بود که وقتی من یک رکورد ست RecordSet تعریف می کردم و اون رو به یک رکورد خاص معطوف می کردم :
"Select * From Keygen Where serCode = '" & serCode &"'"
اگر این رکورد موجود نباشه مقدار در این رکورد ست مساوی با Null می باشد پس دیگه امکان دریافت هیچ نوع اطلاعاتی از این رکورد ست نیست .
پس چطوری این مطلب رو باید متوجه بشیم با این کد :
if not RecSet.BOF and not RecSet.EOF then
با یک شرط ساده از تهی بودن رکورد ست مطلع می شویم .
با تشکر فراوان از 3nitro .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.