Sayfayı Yazdır | Pencereyi Kapat

VC++ MFC ile SQL Server 'a nasıl bağlanırım

Nereden Yazdırıldığı: Datakent
Kategori: Diğer bölümler
Forum Adı: C, C++, Visual C++
Forum Tanımlaması: C, C++, Visual C++ Örnekleri
URL: http://forum.datakent.com/forum_posts.asp?TID=2887
Tarih: 20.Kasim.2019 Saat 04:09


Konu: VC++ MFC ile SQL Server 'a nasıl bağlanırım
Mesajı Yazan: murat turan
Konu: VC++ MFC ile SQL Server 'a nasıl bağlanırım
Mesaj Tarihi: 14.Haziran.2016 Saat 16:41



#include "stdafx.h"
#include "MFC_DB_Test.h"
#include <afxdb.h>
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
using namespace std;
 
int main()
{
	CString _selectUsr_sql;
	CStringA _userName, _userPassword;
 
	CDatabase dbx;
	CRecordset rs(&dbx); //veri tabani nesnesi RecordSer'e referans olarak ataniyor
 
	BOOL _conr = dbx.Open(NULL, falsefalse, _T("ODBC;DSN=ffs;Uid=sa;Pwd=1881"));
 
	//Connection Strings / SQL Server Bağlantı String leri
	//1-ODBC;DSN=ffs;Uid=sa;Pwd=1881
	//2-DRIVER={SQL Server};Uid=sa;Pwd=1881;Database=FFS_DB;Server=THEBLACKSEA
	//3-DRIVER={SQL Server Native Client 11.0};Uid=sa;Pwd=1881;Database=FFS_DB;Server=THEBLACKSEA
 
	//1. yöntemde Yönetimsel araçlar >> ODBC kısmında alias tanımlamanız gerekir.
	//örneğe göre ffs aliasın adıdır.
	//diğer iki yöntemde ODBC üzerinde bir tanım yapmanıza gerek yoktur.
 
	if (!_conr)
		return 0;
 
	//Update, Insert, Delete, EXEC vs... gibi komutlar için "ExecuteSQL"
	//komutu kullanılabilir.
	//Bu komut geriye VERİ YIĞINI döndürmez !!!
	//Veri dönüşü için "CRecordset" nesnesi kullanılmaktadır.
 
	dbx.ExecuteSQL(_T("UPDATE Users SET userPassword = '112233' WHERE refId=1")); // UPDATE, INSERT, DELETE vs...
 
	dbx.ExecuteSQL(_T("EXEC dbo.iusers 'mzs','001122';")); // iusers procedur objesinin kullanımı
 
 
 
        //CRecordset ile select sonucunun okunması
	_selectUsr_sql = "SELECT refId, userName, userPassword "
		"FROM users";
 
	cout << "veriler okunuyor..." << endl;
	rs.Open(CRecordset::forwardOnly, _selectUsr_sql, CRecordset::readOnly);
 
 
	while (!rs.IsEOF())
	{
		rs.GetFieldValue(_T("userName"), _userName);
		rs.GetFieldValue(_T("userPassword"), _userPassword);
 
		cout << _userName << endl;
 
		rs.MoveNext();
	}
 
	dbx.Close();
 
	cout << "okuma tamamlandi." << endl;
 
	return 0;
}


Not: <afxdb.h> başlığı Veri tabanı nesnesi olan "CDatabase" ve bağıntılarını içeren dosyadır ve INCLUDE edilmelidir. Uygulama VC++ 2015 ile test edilmiştir.


KeyWords: Connect SQL Server with VC++ MFC, read data sql server vc++, execute procedure with vc++ mfc


-------------
http://www.kasatakip.com - Kasa Takip  |  http://www.caritakip.com - Cari Takip  |  http://www.evraktakip.com - Evrak Takip  |  http://www.etasqlmobil.com - ETA SQL Mobil



Cevaplar:
Mesajı Yazan: murat turan
Mesaj Tarihi: 14.Haziran.2016 Saat 16:48
Test de kullanılan tablo:
CREATE TABLE [dbo].[users](
    [refId] [int] IDENTITY(1,1) NOT NULL,
    [userName] [varchar](50) NOT NULL,
    [userPassword] [varchar](50) NOT NULL,
    [isAdmin] [bit] NOT NULL,
 CONSTRAINT [PK_users] PRIMARY KEY CLUSTERED
(
    [refId] ASC
))


Procedure:
CREATE PROCEDURE [dbo].[iusers]
    @userName varchar(50),
    @userPassword varchar(50)
AS
BEGIN
    SET NOCOUNT ON;
    INSERT INTO users(userName, userPassword, isAdmin)
    VALUES(@userName, @userPassword, 0);
END


-------------
http://www.kasatakip.com - Kasa Takip  |  http://www.caritakip.com - Cari Takip  |  http://www.evraktakip.com - Evrak Takip  |  http://www.etasqlmobil.com - ETA SQL Mobil



Sayfayı Yazdır | Pencereyi Kapat