اینم یه تجربه پراکنده کوتاه دیگه!
من اخیرا توی یکی از پروژههام که به زبان c++ نوشته شده نیاز داشتم که از یک شبه ORM به نسبت سبک استفاده کنم چند تا ویژگی داشته باشه. این ویژگیها عبارتند از:
- متن باز باشه
- وابستگیهای زیادی نداشته باشه
- حداقل از sqlite و mysql و postgres پشتیبانی کنه
- استفاده ازش راحت باشه
گزینههای زیادی جلوی روم نبود
یادمه نمیاد چرا odb رو از لیست انتخابهام حذف کردم. اما qxrm به دلیل اینکه نمیخواستم یه وابستگی جدید(وابستگی به qt) به کدم اضافه کنم استفاده نکردم. و در انتها از soci استفاده کردم. کار با soci به نسبت راحته و فقط کافیه که نمونه کد ازش ببینید. تقریبا هم توی تمام توزیعهای لینوکس قابل استفاده است
#include "soci.h" #include "soci-oracle.h" #include <iostream> #include <istream> #include <ostream> #include <string> #include <exception> using namespace soci; using namespace std; bool get_name(string &name) { cout << "Enter name: "; return cin >> name; } int main() { try { session sql(oracle, "service=mydb user=john password=secret"); int count; sql << "select count(*) from phonebook", into(count); cout << "We have " << count << " entries in the phonebook.\n"; string name; while (get_name(name)) { string phone; indicator ind; sql << "select phone from phonebook where name = :name", into(phone, ind), use(name); if (ind == i_ok) { cout << "The phone number is " << phone << '\n'; } else { cout << "There is no phone for " << name << '\n'; } } } catch (exception const &e) { cerr << "Error: " << e.what() << '\n'; } }
همین.
سلام …
اول خسته نباشید بابت زحمتتون …
دوم : اگه میشه در باره ی SOCI هم یه دورنمایی بدین ، اینکه چطوری باید به پروژه اضافش کنیم و از این جور مثائل . من که هر کاری کردم نتونستن ازش استفاده کنم …
بازم ممنون …
سلام.
ممنون.
خب اضافه کردنش به پروژه وابسته به سیستم عامل و نحوه کامپایل کردن پروژه داره
اما کلیتش اینه که باید به لیست جاهایی که میتونه از توش فایل هدرها رو اضافه کنه آدرس soci رو بدید
در هنگام link کردن هم باید بگید که پروژه رو با soci لینک کنه
مثلا توی لینوکس اینطوری میشه
برای هدرها
-I/usr/local/include/soci/
برای کتابخانه
-lsoci_core -lsoci_mysql
سلام
برای کار باMsSql چه رو پیشنهاد می دین؟
dbo هست ولی من خیلی تنونستم باهاش کاری انجام بدم ، شما تجربه ای در این زمینه دارین؟
سلام
من چیز خاصی ندارم. من معمولا یا از phpmyadmin استفاده میکنم یا cli خود mysql هست. خود اوراکل mysql workbench داره که بد نیست