MFC (Microsoft Foundation Classes) ব্যবহার করে ডেটাবেসের সঙ্গে কাজ করতে হলে ADO (ActiveX Data Objects) বা ODBC (Open Database Connectivity) এর মতো প্রযুক্তি ব্যবহার করতে হয়। MFC-এ ডেটাবেস টেবিল এবং রেকর্ডসেট ম্যানেজমেন্ট সাধারণত CRecordset ক্লাসের মাধ্যমে করা হয়। এই ক্লাসের মাধ্যমে আপনি ডেটাবেস থেকে ডেটা রিট্রিভ করতে পারেন, নতুন রেকর্ড যোগ করতে পারেন, বিদ্যমান রেকর্ড আপডেট করতে পারেন, এবং ডেটা ডিলিট করতে পারেন।
এখানে Database Table এবং Recordset ব্যবস্থাপনার জন্য প্রয়োজনীয় ধারণা এবং কোড উদাহরণ দেওয়া হবে।
Database Table ম্যানেজমেন্ট
ডেটাবেস টেবিল ম্যানেজমেন্টের মধ্যে থাকে টেবিল তৈরি, টেবিলের ডাটা রিট্রিভ করা, এবং ডাটা আপডেট বা ডিলিট করা। ODBC বা DAO ব্যবহার করে আপনি MFC অ্যাপ্লিকেশন থেকে ডেটাবেসের টেবিলগুলোর সঙ্গে ইন্টারঅ্যাক্ট করতে পারেন।
CDatabase ক্লাস
CDatabase ক্লাস ডেটাবেস সংযোগ এবং SQL কোয়েরি এক্সিকিউট করতে ব্যবহৃত হয়। এই ক্লাসের মাধ্যমে আপনি ডেটাবেসে সংযোগ স্থাপন এবং ডেটা অ্যাক্সেস করতে পারেন।
Code Example: CDatabase ব্যবহার করে ডেটাবেসে সংযোগ স্থাপন:
CDatabase db;
if (db.OpenEx(_T("DSN=MyDataSource;UID=Admin;PWD=Password"), CDatabase::noOdbcDialog))
{
AfxMessageBox(_T("Database Connected Successfully"));
}
else
{
AfxMessageBox(_T("Database Connection Failed"));
}
এখানে, OpenEx ফাংশনটি ODBC ডেটাবেসের সাথে সংযোগ স্থাপন করতে ব্যবহৃত হয়েছে, যেখানে DSN হল ডেটাবেস সোর্সের নাম, UID হল ইউজার আইডি, এবং PWD হল পাসওয়ার্ড।
CRecordset ক্লাস
CRecordset হল MFC এর একটি ক্লাস যা ডেটাবেস টেবিলের রেকর্ডসেটের সাথে কাজ করার জন্য ব্যবহৃত হয়। এর মাধ্যমে আপনি ডেটা রিট্রিভ, ইনসার্ট, আপডেট, এবং ডিলিট করতে পারেন।
Recordset Open এবং Read Operations
CRecordset ক্লাস ব্যবহার করে ডেটাবেস থেকে ডেটা রিট্রিভ করার প্রক্রিয়া নিম্নরূপ:
CRecordset rs(&db); // CDatabase পয়েন্টারকে পাস করুন
rs.Open(CRecordset::forwardOnly, _T("SELECT * FROM MyTable"), CRecordset::readOnly);
while (!rs.IsEOF())
{
CString strData;
rs.GetFieldValue(_T("FieldName"), strData); // 'FieldName' এর মান পড়ুন
AfxMessageBox(strData); // প্রদর্শন করুন
rs.MoveNext(); // পরবর্তী রেকর্ডে যান
}
rs.Close();
এখানে, Open ফাংশনটি SQL কোয়েরি দিয়ে ডেটাবেসের টেবিল থেকে ডেটা রিট্রিভ করার জন্য ব্যবহৃত হয়। MoveNext() ফাংশনটি পরবর্তী রেকর্ডে নিয়ে যায় এবং GetFieldValue() ফাংশনটি নির্দিষ্ট ফিল্ডের মান পড়তে সাহায্য করে।
Recordset Insert, Update এবং Delete Operations
CRecordset এর মাধ্যমে ডেটাবেসে রেকর্ড ইনসার্ট, আপডেট এবং ডিলিট করা যেতে পারে। এই অপারেশনগুলো করার জন্য কিছু বিশেষ ফাংশন রয়েছে।
Insert Record
নতুন রেকর্ড ইনসার্ট করতে AddNew() এবং SetFieldValue() ফাংশন ব্যবহার করা হয়:
CRecordset rs(&db);
rs.Open(CRecordset::dynaset, _T("SELECT * FROM MyTable"), CRecordset::readWrite);
rs.AddNew(); // নতুন রেকর্ড তৈরি
rs.SetFieldValue(_T("FieldName"), _T("New Value")); // ফিল্ডে নতুন মান সেট করুন
rs.Update(); // রেকর্ড সেভ করুন
rs.Close();
Update Record
বিদ্যমান রেকর্ড আপডেট করতে Edit() এবং SetFieldValue() ফাংশন ব্যবহার করা হয়:
CRecordset rs(&db);
rs.Open(CRecordset::dynaset, _T("SELECT * FROM MyTable WHERE ID = 1"), CRecordset::readWrite);
rs.Edit(); // বিদ্যমান রেকর্ড আপডেট করতে
rs.SetFieldValue(_T("FieldName"), _T("Updated Value"));
rs.Update(); // রেকর্ড আপডেট করুন
rs.Close();
Delete Record
রেকর্ড ডিলিট করতে Delete() ফাংশন ব্যবহার করা হয়:
CRecordset rs(&db);
rs.Open(CRecordset::dynaset, _T("SELECT * FROM MyTable WHERE ID = 1"), CRecordset::readWrite);
rs.Delete(); // রেকর্ড ডিলিট করুন
rs.Close();
SQL কোয়েরি এক্সিকিউট করা
CDatabase এবং CRecordset ব্যবহার করে আপনি SQL কোয়েরি এক্সিকিউট করতে পারেন। উদাহরণস্বরূপ, একটি SQL কোয়েরি চালানোর জন্য নিচের কোড ব্যবহার করা যেতে পারে:
CString strSQL = _T("INSERT INTO MyTable (FieldName) VALUES ('New Value')");
db.ExecuteSQL(strSQL); // Execute the SQL query
এখানে ExecuteSQL() ফাংশনটি SQL কোয়েরি চালাতে ব্যবহৃত হয়।
CRecordset এর বিভিন্ন ধরনের মড
CRecordset ক্লাসে সাধারণত তিন ধরনের মডে কাজ করা যায়:
- forwardOnly: এটি শুধুমাত্র রেকর্ডগুলো একদিক থেকে পড়তে সক্ষম। অর্থাৎ, আপনি শুধু পরবর্তী রেকর্ডে যেতে পারবেন।
- dynaset: এই মডে আপনি ডেটার মধ্যে পরিবর্তন করতে পারেন এবং একই সাথে ডেটার রেকর্ড দেখতে পারবেন।
- snapshot: এটি ডেটার একটি স্থির কপি তৈরি করে এবং আপনাকে রেকর্ডের সাথে কোনো পরিবর্তন করতে দেয় না।
সারাংশ
CRecordset এবং CDatabase ক্লাস MFC এর মধ্যে ডেটাবেস টেবিল এবং রেকর্ডসেট ম্যানেজমেন্টের জন্য অত্যন্ত গুরুত্বপূর্ণ। এই ক্লাসগুলো ব্যবহার করে আপনি ডেটাবেসের টেবিল থেকে ডেটা রিট্রিভ করতে, নতুন রেকর্ড ইনসার্ট করতে, বিদ্যমান রেকর্ড আপডেট করতে এবং ডেটা ডিলিট করতে পারেন। ডেটাবেসের সাথে কাজ করার জন্য SQL কোয়েরি ব্যবহার করা হয়, এবং MFC এর CRecordset ক্লাসের মাধ্যমে এই সব অপারেশনগুলি সম্পাদিত হয়।
Read more