نوشته شده توسط
binyaz2003
برای کار با تابع sqlexec می خوام برای بانک های sql
نکته بسیار جالبی دیدم که دوستان اشاره نکرده بودند. در مجموع کار با این تابع سرعت و دقت به همراه داره و من سعی میکنم با توجه به حجم بالای استفاده از ریسورسهای کامپیوتر میزبان و شبکه حتی المقدور برای جلوگیری از خطا و پایین آوردن حجم استفاده از شبکه ازش استفاده کنم.
یه کرسر ایجاد کرده (البته دوستی می گفت کرسرهای بالای ده هزار رکورد یعنی برنامه نویس نمیدونه چه داره میکنه) و برای آپدیت هم رکوردهای تغییر یافته کرسر رو مارک میکنیم و برای هر تغییر (مجددا با استفاده از همون تابع) اسکیوال رو آپدیت میکنیم. به این شیوه تقریبا داریم مستقیم با اسکیوال کار میکنیم و دقت و امنیت تضمین شده است.
اول یه دی اس ان (بهتر از دی اس ان لس کار میکنه) ایجاد کنید. بعد یه دیتابیس و یه کانکشن با استفاده از دی اس ان مربوطه.
به ترتیب:
1- ایجاد دی اس ان:
SomeServer="10.10.10.1"
DECLARE INTEGER SQLConfigDataSource in odbccp32.DLL ;
INTEGER hwndParent, INTEGER fRequest, ;
STRING @lpszDriver, STRING @lpszAttributes
lcAttributes = "DSN=mydsn" + CHR(0) + ;
"Server="+SomeServer + CHR(0) + ;
"database=db"
#DEFINE ODBC_ADD_SYS_DSN 4
lnReturn = SQLConfigDataSource( 0, 4, "SQL Server" + CHR(0), lcAttributes )
IF lnReturn<>1
MESSAGEBOX("DSN creation failed",16)
ENDIF
نکته: ایجاد دی اس ان با یوزر و پس رو فراموش کنید.
2- ایجاد کانکشن:
open database mydb shared
CREATE CONNECTION remote_01 DATASOURCE 'mydsn' userid 'user' password 'pass'
3- استفاده از تابع:
lhn = SQLCONNECT("remote_01")
a="SELECT * FROM main"
result=SQLEXEC(lhn, a ,"main")