# Native Code > برنامه نویسی با C > برنامه نویسی با MFC و ++Visual C >  برنامه كار با ديتابيس sql server در C++‎

## dr-data

سلام به همه دوستان ارجمند.

من برنامه نويس حرفه اي pc نيستم ولي C++‎‎‎ بلدم. مي خواستم بدونم برنامه آماده اي براي كار با ديتا بيس به زبان C++‎‎‎ براي انجام كارهاي kنچندان حرفه اي زير با ديتا بيس sql server express وجود داره؟ اگه كسي بتونه راهنمايي كنه ممنون ميشم.
1) ايجاد ديتابيس
2)ايجاد جدول
3)خواندن ركوردهاي جدول و قرار دادن مقادير در متغيرها
4)نوشتن مقادير متغيرها در ركوردهاي جدول
و ......

من اينكار رو با vbscript در يك نرم افزار خاص انجام داده ام و مشكلي ندارم ولي مي خوام در visual C++‎‎‎ 2008 اينكار رو انجام بدم.
اگه برنامه ش رو كسي داره يه دنيا ممنون ميشم ازش. خيلي لازم دارم به اين برنامه.

تشكر پيشاپيش از راهنمايي شما

----------


## pe32_64

https://barnamenevis.org/showthread.p...86%D9%85%D8%9F

----------


## dr-data

سلام pe32_64 ممنون از لينك مفيدت. اتفاقاً من هم مي خوام از ADO استفاده كنم. مثالش جالب بود. فقط اين واسه ديتا بيس access هستش. من ديتا بيسم sql server express هست. بايد كجا رو به چي تغيير بدم؟
همچنين اين مثال ايجاد يك ديتا بيس و ايجاد يك جدول رو نداره، يعني اگه ما يه ديتا بيس از قبل داشته باشيم ميشه ازش استفاده كرد. اگه براي اين بخش نيز مثالي داريد ممنون ميشم شير كنيد.
ممنون و تشكر

----------


## pe32_64

بدنبود اگه یه نگاه کاملی به فایل database.h  می انداختید



> من ديتا بيسم sql server express هست. بايد كجا رو به چي تغيير بدم؟



    // This connects to an SQL server
    void Connect(string strAddress, string strDB, string strUser, string strPassword);
و
    // This runs a SQL command
    int RunSQL(char *szSQL);





> همچنين اين مثال ايجاد يك ديتا بيس و ايجاد يك جدول رو نداره، يعني اگه ما  يه ديتا بيس از قبل داشته باشيم ميشه ازش استفاده كرد. اگه براي اين بخش  نيز مثالي داريد ممنون ميشم شير كنيد.




    // This creates a table in the database with column values
    void CreateTable(string strTable, string strValues);

    // This selects a table
    void SelectTable(string strTable);

    // This inserts a record into a table
    void InsertRecord(string strTable, string strValues, string strColumns = "");

    // This updates a record's values
    void UpdateRecord(string strTable, string strValues, string strWhere);

مثالهای بیشتری ندارم ولی بایک جستجو در گوگل یا codeproject.com مشکل حل میشه!

----------


## dr-data

pe32-64 عزيز من برنامه نويس حرفه اي نيستم و اصلاً رشتم هم كامپيوتر نيست! و حتي هنوز مفهم كلاس رو درست نفهميدم و تو همين سايتم پرسيدم و البته يكي از دوستان توضيحاتي دادند و منم كمي فهميدم ولي باز فايدشو نفهميدم!  :خجالت: 
و بايد الان كلي تلاش كنم بفهمم چطور ميشه از اين آبجكتهاي كلاس استفاده كرد.
پس خيلي خوبه چشم حتماً با دقت مي خونم محتواي هدر رو.

تشكر بابت راهنمايي مفيدت.

----------


## pe32_64

جناب *dr-data*، فایدش آسون شدن برنامه نویسیه!
مثلا به همین کلاس database دقت کن،بببین کار کردن باهاش چقدر سادس ولی نوشتن خوده کلاسش چقدر سخته!
با کلاس ،یک رفتار(مثلا اتصال بهdatabase  ) رو می شه آسونتر کرد.

----------


## dr-data

البته اون دوستمون هم همينو گفتن و من هم كمي متقاعد شدم ولي خب واس ساده كردن فانكشن هم ميشه نوشت ديگه چه نيازي به كلاس هست؟!!! :متعجب: 
مثلا، من الان خودم مي خوام سعي كنم يه فانكشن بنويسم كه به محض فراخونيش به يه ديتا بيس با يه اسم خاص وصل شه و بعد با فراخوني يه فانكشن ديگه محتواي يه جدول رو برام بياره تو يه جايي.... كلاس نيازي نيست كه ! :متفکر:  البته كاملاً ميدونم من دارم اشتباه ميكنم!! و هنوز اين فرق رو نفهميدم!

----------


## pe32_64

عزیز، استدلال شما درسته !
ولی در برنامه های بزرگتر ویا همچنین در برنامه های دیگر(که بعدا مینویسید) اگه به جای تابع از کلاس استفاده بشه:
احتمال خطا *کمتر* میشه(کمتر به زمین و زمان و استادو کامپایلرو ... بد وبیراه می گید!!)
برنامه نویسی هم *راحتتر*(باید بتونین از کدهای نوشته ی خود یا دیگران *راحتتر* استفاده کتید)
همین!

----------


## dr-data

pe32_64 يه سوال ديگه برام پيش اومد در اين رابطه، اگه ديتابيس ما يوزر و پس داشت چكار بايد كنيم؟ :متفکر:  اين رو نديدم هيچ جاي برنامه! 

مرسي

----------


## pe32_64

عزیز پست 4 رو خوب نگاه کن!!!!!!!!!!!
تابع  


  void Connect(string strAddress, string strDB, string strUser, string strPassword);

----------


## dr-data

استاد بداخلاق نشيد ديگهه، ببخشيد :خجالت: 
جسارتاً اگه نميزنيد، اگه يوزر منali‌ و پس من 123 باشه مثلاً به اين صورت ميشه ديگه:
g_AccessDatabase.Connect("GTDatabase.mdb","ali","123");                                                                                                        1  

درسته؟
من در رفتم ديگه :افسرده: 

بازم ممنون :چشمک:

----------


## pe32_64

جناب تابع 4 تا پارامتر می گیره
تو داخل خود کدا چیزایی گفته،بد نیست بخونین

----------

