View Full Version : متصل کردن بانک sql به engine با کد نویسی
kont_200
شنبه 03 اردیبهشت 1390, 09:54 صبح
با سلام به دوستان گرامی
چجوری می شود یک بانک را با استفاده از کد نویسی به engine sql متصل نمود
با تشکر
nilidelphi
شنبه 03 اردیبهشت 1390, 12:12 عصر
خوب دوست عزیز این که کاری نداره
شما یه با بصورت ویژوال یکی از ابزار های ADO رو به یک دیتابیس وصل کنید سپس کد داخل Connection string رو کپی کرده و این بار از طریق کد به اون ویژگی اختصاص دهید.
تمام
موفق باشید.
kont_200
شنبه 03 اردیبهشت 1390, 17:22 عصر
نه منظور من این نیست
یعنی بر روی سیستمی که sql نصب نیست فقط engine رو نصب بکنیم و با استفاده از کد نویسی بانک اطلاعاتی که در کنار برنامه موجود است را به آن موتور بشناسانیم تا برنامه با استفاده ado به این بانک بتوانیم متصل شویم
kont_200
شنبه 03 اردیبهشت 1390, 18:37 عصر
اینم راه حل برای استفاده دوستان
اتصال بانک به msde sql
/************************************
//Attach and detach an MSSQL database
//or MSDE using ADO in Delphi 7.
//
//by Joseph Fuchaka Barasa
//jfuchakab@yahoo.com
//
//Helps one to work with database objects
//(tables, queries, stored procedures
//etc) using free version of MSDE.
//without using the costly Enterprise
//version of the database.
************************************/
procedure detach_database;
var
strcommand, detachedDB: string;
begin
detachedDB:=trim(EditDetachedBName.Text);//database name
strcommand:='EXEC sp_detach_db @dbname = '+detachedDB+'';//detaching
with AttachConn do begin//AttachConn is ADOConnection
close;//attach on the master system database.
//computer_name is the name of your computer
ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog='+'master'+';Data Source='+computer_name+'';
open;
end;//with attachconn
with qryDetach do begin//qryDetach is AdoQuery
close;
sql.Clear;
sql.Text:=strcommand;
try
ExecSQL;
ShowMessage('Detach was Successfull');
Except on E:Exception do begin
Showmessage('Error Dettaching the Database');
Application.Terminate;
end;
end;//try - except
end;
end;//detach
procedure attach_database;
var
strcommand, dbase_Name, file1, file2: string;
begin
//database name
dbase_Name:=trim(EditAttachedDBase.Text);
file1:=trim(EditDatabaseFIle.Text);//database file
file2:=trim(EditLogFile.Text);//log file
with AttachConn do begin
close;//connect to master system database
ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog='+'master'+';Data Source='+computer_name+'';
open;
end;//with attachconn
//sql commands for attaching
strcommand:='EXEC sp_attach_db @dbname = '+dbase_Name+', ';
strcommand:=strcommand + '@filename1 = "'+File1+'"'+', ';
strcommand:=strcommand + '@filename2 = "'+File2+'"'+'';
with qryAttach do begin
close;
sql.Clear;
sql.Text:=strcommand;
try
ExecSQL;
ShowMessage('Database Successfully attached');
Except on E:Exception do begin
Showmessage('Error Attaching the Database');
Application.Terminate;
end;
end;//try - except
end;//with query attach
end;
/************************************************** ****
//questions, improvements, criticism,
//and suggestions should be send to :
//jfuchakab@yahoo.com
//the zip of the project is attached
//have a nice day.
//************************************************** ***
kont_200
شنبه 03 اردیبهشت 1390, 18:39 عصر
ویا از این کد در sql script استفاده نمایید
USE [master]
GO
CREATE DATABASE [Darmangah] ON
( FILENAME = N'C:\Program Files\NeedSoft\Darmangah\Data\Darmangah_Data.MDF' ),
( FILENAME = N'C:\Program Files\NeedSoft\Darmangah\Data\Darmangah_Log.LDF' )
FOR ATTACH
GO
nilidelphi
یک شنبه 04 اردیبهشت 1390, 15:52 عصر
اگه از اس کیو ال 2000 استفاده می کنی باید MSDE رو که تو سی دی خود اس کیو ال است رو نصب کنی.
اون وقت بدون اینکه خود اس کیو ال رو نصب کنی می تونی دیتابیست رو اتچ کنی.
اگرم از SQL2005 استفاده می کنی می تونی ویرایش (Compact) رو فکر کنم باید نصب کنی.
vcldeveloper
یک شنبه 04 اردیبهشت 1390, 16:30 عصر
یعنی بر روی سیستمی که sql نصب نیست فقط engine رو نصب بکنیم
اگه از اس کیو ال 2000 استفاده می کنی باید MSDE رو که تو سی دی خود اس کیو ال است رو نصب کنی.
اگرم از SQL2005 استفاده می کنی می تونی ویرایش (Compact) رو فکر کنم باید نصب کنی.
نصب Engine روی کلاینت؟! نصب MSDE یا Compact Edition بر روی کلاینت برای استفاده از MS SQL Server؟!! آخه اینا چیه که میگید؟!
MS SQL Server یک نرم افزار سرور هست، برای اینکه یک کلاینت بتونه بهش متصل بشه، نیازی نیست که MS SQL Server یا MSDE یا Compact Edition روی کلاینت نصب باشه! اگر قرار بود هر کلاینت یکی از اینا رو نصب کنه که دیگه اسمش نمیشد SQL Server !
کلاینت ها برای اتصال به یک سرور MS SQL Server فقط نیاز به یک درایور دارند. درایور OLE DB و ODBC مربوط به MS SQL Server در همه نسخه های ویندوز به طور پیش فرض نصب هست. اما برای استفاده از تمامی قابلیت های نسخه های 2005 و 2008 نرم افزار MS SQL Server، باید Native Client مربوط به اون نسخه روی کلاینت نصب باشه. Native Client هم به صورت یک دانلود کم حجم در سایت مایکروسافت موجود هست، در دیسک نصب MS SQL Server هم برنامه نصبش پیدا میشه. البته برای کار Attach و Detach بانک، همون درایور موجود OLE DB کفایت میکنه، و اگر هدف فقط همین هست، یا نسخه MS SQL Server قدیمی تر از 2005 هست، نیازی به نصب Native Client نیست.
و با استفاده از کد نویسی بانک اطلاعاتی که در کنار برنامه موجود است را به آن موتور بشناسانیم تا برنامه با استفاده ado به این بانک بتوانیم متصل شویم
اگر جستجو می کردید، ده ها بار در همین بخش درباره Attach/Detach بانک بحث شده بود، و نمونه کد گذاشته شده بود.
nilidelphi
یک شنبه 04 اردیبهشت 1390, 21:57 عصر
آقای کشاورز من منظور شما رو نفهمیدم.
منظور از Client یک سیستم در شبکه است یا یک سیستم عادی در یک جای دیگه.؟
فکر کنم منظور دوست سوال کننده این بوده که برنامرو تو سیستم خودش بنویسه و در یک جای دیگه بدون اینکه اس کیو ال نصب کنه برنامشو اجرا کنه.
خوب حالا این درایوی که شما میگید چطور کار میکنه؟
مثلا من یه برنامه دارم که رو با اس کیو ال 2000 سواره الان هم رو سیستمم SQL2000 ندارم ولی اجرا نمیشه.
میشه راهنمایی کنید؟
vcldeveloper
دوشنبه 05 اردیبهشت 1390, 00:01 صبح
منظور از Client یک سیستم در شبکه است یا یک سیستم عادی در یک جای دیگه.؟
یک سیستم که بتونه از طریق شبکه به سرور ارتباط برقرار کنه.
فکر کنم منظور دوست سوال کننده این بوده که برنامرو تو سیستم خودش بنویسه و در یک جای دیگه بدون اینکه اس کیو ال نصب کنه برنامشو اجرا کنه.
من هم به همین سوال جواب دادم. اصلا بی معنی هست که برنامه نویس بخواد روی هر کلاینت یه SQL Server نصب کنه! مثل این هست که یکی بگه برای اجرا شدن برنامه من، باید هر کاربر روی سیستم خودش دلفی نصب کنه!!
خوب حالا این درایوی که شما میگید چطور کار میکنه؟
اگر از ADO استفاده می کنید، درایور OLE DB مربوط به SQL Server با نام Microsoft OLE DB Provider for SQL Server در لیست Provider ها موجود هست. اگر بر فرض نیست، یا نسخه اش قدیمی هست، آخرین نسخه MDAC را از سایت مایکروسافت دانلود، و نصب کنید. توی دیسک نصب SQL Server هم باید برنامه ایی برای نصب Client Tools باشه. اگر از نسخه 2005 یا 2008 استفاده می کنید، از درایور SQL Server Native Client استفاده کنید، که با ویندوز نیست، باید خودتون اون رو یا از سایت مایکروسافت دانلود کنید، یا از دیسک نصب SQL Server نصبش کنید.
nilidelphi
سه شنبه 06 اردیبهشت 1390, 15:37 عصر
حالا اگه این سیستم امکان اتصال از شبکه رو نداشته باشه اون وقت چطور برنامه رو باید استفاده کرد؟
vcldeveloper
سه شنبه 06 اردیبهشت 1390, 18:19 عصر
حالا اگه این سیستم امکان اتصال از شبکه رو نداشته باشه اون وقت چطور برنامه رو باید استفاده کرد؟
وقتی امکان اتصال به شبکه رو نداشته باشند، یعنی شما دارید یک برنامه Local می نویسید، نه Client\Server. اون وقت، اولین سوالی که باید از خودتون بپرسید اینه که، چرا برای یک برنامه Local نیاز به SQL Server دارید؟! و اگر به جواب قانع کننده ایی برای اون سوال رسیدید، از نسخه های Local موجود برای SQL Server، مثل Compact Edition استفاده می کنید، و اگر به جواب قانع کننده ایی نرسیدید، امکان استفاده از بانک هایی که برای کارهای Local توسعه داده شدند، مثل MS Access رو بررسی می کنید.
نسخه هایی مثل SQL Server Standard Edition یا SQL Server Enterprise Edition و امثالهم، برای کارهای Local طراحی نشدند. اگر برای کارهای Local از این نسخه ها استفاده می کنید، اشتباه می کنید!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.