PDA

View Full Version : اجرای دستور SQL برای اتصال



hassan1365
یک شنبه 23 مهر 1385, 22:47 عصر
سلام بچه ها خسته نباشید.
فکر کنم دوجور استفاده از بانک تو ASP داریم:
یکی اینه که تو هر صفحه ای که از بانک میخواد استفاده کنه یه کانکشن داشته باشیم و یکی اینه که یه فایل کانکشن داشته باشیم و هر بار که تو هر صفحه خواستیم وصل بشیم اونو include کنیم که البته به نظرم دومی برای کنترل ترافیک سایت بهتر باشه.
حالا مشکل من اینجاست که ممکنه تو صفحات عبارتهای SQL‌ جداگانه ای مورد نیاز باشه(مثل اضافه کردن ، پاک کردن و ...) .برای اینکه اون صفحه کانکشن رو با عبارت دلخواه بتونیم تو یه صفحه اجرا کنیم باید چکار کنیم.

فعلا یه سوال دیگه هم دارم.وقتی میخوام به بانک SQL‌ رکورد اضافه کنم این پیغام رو میده.(فکر کنم باید از دستور insert into استفاده کنم.



Error Type:
ADODB.Recordset (0x800A0CB3)
Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.
/adddata.asp, line 45


این سورس مربوطه است:


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
DIM objConn
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "Driver={SQL Server}; Server=(local); Database=amartemp; UID=sa; PWD=hassan;"
objConn.Open

dIM objRS
'objRS.Open mySQL, objConn

'DIM mySQL
'mySQL = "SELECT * FROM tbluser"

dim bolalreadyexists

dim id,name2,family ,username,passowrd
id=request.Form("id")
name2=request.Form("name")
family=request.Form("family")
username=request.Form("username")
password=request.Form("password")

if id="" or name2="" or family="" or username="" or password="" then
error = "You have not entered an complete news."
Response.Write error
'Response.End
else
bolalreadyexists=false
Set objRS = Server.CreateObject("ADODB.Recordset")
'objrs.open "tbluser",objconn,adlockoptimistic,adcmdtable
DIM mySQL
mySQL = "SELECT * FROM tbluser"
objrs.open mysql,objconn

do while not (objrs.eof or bolalreadyexists)
if (strcomp(objrs("username"),username,vbtextcompare)=0) then
response.Write("username already exist")
bolalreadyexists=true
end if

objrs.movenext
loop

if not bolalreadyexists then
objrs.addnew
objrs("id")=id
objrs("name") =name2
objrs("family")=family
objrs("username")=username
objrs("password")=password
objrs.update

response.Write("thanks a lot")
end if

objrs.close
set objrs=nothing
end if
objconn.close
set objconn = nothing
%>


موفق باشید.

hassan1365
چهارشنبه 26 مهر 1385, 14:16 عصر
سلام
مشکل دوم برطرف شد ولی چند تا سوال دیگه پیش اومده ممنون میشم کمک کنید.
وقتی میخوام مقدار یه فیلد hidden رو برابر now‌بذارم کلا میریزه به هم ولی وقتی یه مقدار ثابت (مثل salam) بهش میدم درست کار میکنه.
این سورسشه:


<table border="2" cellpadding="0" cellspacing="0">
<form method="post" action="adddata.asp" >
<tr><td colspan="2" align="center">ایجاد کاربر جدید</td></tr>
<input type="hidden" name="Day" value="<%=salam%>" />
<%objrs.movelast%>
<tr><td>id:</td><td><input type="text" readonly="true" value="<%=objrs("id")+1%>" size="20" name="id" tabindex="1" /></td></tr>
<%
objrs.close
set objrs=nothing
objconn.close
set objconn=nothing
%>
<tr><td>name:</td><td><input type="text" size="20" name="name" tabindex="2"/></td></tr>
<tr><td>family:</td><td><input type="text" size="20" name="family" tabindex="3"/></td></tr>
<tr><td>username:</td><td><input type="text" size="20" name="username" tabindex="4" /></td></tr>
<tr><td>password:</td><td><input type="password" size="20" name="password" tabindex="5" /></td></tr>
<tr><td colspan="2"><input type="submit" value="insert" tabindex="6"/></td></tr>
</form>
</table>
<hr />
<table>
<form method="post" action="search.asp">
<tr><td>search:</td><td><input type="text" size="20" name="search" tabindex="7"/></td><td><input type="submit" value="search" tabindex="8"/></td></tr>
</form>
</table>

بعد از اجرا محتویات فیلده میشه:


12:50:10<tr><td>id:</td><td><input type="tex"

بعدی اینه که نمیتونم تو بانک فارسی درج کنم و جالب اینکه داده های موجود در بانک هم اگه فارسی باشه تو بعضی از صفحات قاطی میکنه.
در ضمن نوع داده هام nvarchar‌ هستن.
بعدی اینکه یه نوع داده BIT دارم که محلی رو مشخص میکنه که کاربر میتونه دسترسی داشته باشه(مثل اضافه ، حذف و...) .مشکل اینجاست که وقتی میخوام از بانک مقدارشو بخونم TRUE/FALSE بر میگردونه ولی من 1/0 وارد بانک میکنم.حالا باید چکار کنم که 1/0 برگردونه؟

موفق باشید.

hassan1365
شنبه 29 مهر 1385, 09:35 صبح
سلام
از اینکه دوستان به فکر ما هستن ممنونم.
یه چند تا دیگه سوال پیش اومده ممنون میشم کمک کنین.
1- توی صفحه لاگین دستور SELECT‌ به حروف کوچک و بزرگ حساس نیست.(پاک حالمو گرفته)چکارش کنم؟
2- میخوام بر اساس فیلد BIT مجوز دسترسی بدم.چطوری باید این کارو انجام بدم؟
3- Session سایت هم درست کار نمیکنه.وقتی 2 تا پنجره با هم باز میکنی نمیفهمه که قبلا لاگین بوده تو این یکی هم باید لاگین باشه.چه کارش باید کرد؟
4- برای نشون دادن ID‌ کسانی که لاگین هستن از یه جدول تو بانک استفاده کردم.درستم کار میکنه منتها به شرطی که کاربر وقتی لاگین کرد موقع خروج حتما Logout کنه(تا از تو بانک پاک بشه) ولی اگه یهو پنجره رو ببنده یا بره تو یه سایت دیگه من متوجه نمیشم تا اونو پاکش کنم.دوستان چه راه حلی پیشنهاد میکنن؟(من که میگم باید یه آرایه از session ها درست کنم و در Index‌ اونو بررسی کنم.)
5- دستور recordcount همیشه 1- برمیگردونه .برای بدست آوردن تعداد چکار کنم.
6- بچه ها این دستور جاوا چی بود که مرورگرو به یه صفحه دیگه میبرد؟(تو Onclick باتون استفاده میکنن)
7- آخ آخ این خیلی مهمه(جون من)چطوری میشه یه عدد از آرایه داد Index‌شو گرفت(مثلا D , b,e,a آرایه هستند)


d(i)=index(b(mi)))
(e(i)=a(d(i))

از اینکه خودمو در کنار شما احساس میکنم واقعاخوشحالم.
موفق باشید.