delphi4arab منتديات دلفي للعرب
مزامنه قواعد البيانات - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : مزامنه قواعد البيانات (/showthread.php?tid=5216)



مزامنه قواعد البيانات - محمد الدرة - 12-05-2013

السلام عليكم
اعمل على برنامج اداره حج والعمره بحيث لديه عده فروع وكل فرع له قاعده بيانات من نوع sql server
في نهايه اليوم ان اعمل مزامنه لقواعد البيانات في الفروع بحيث اول مايتم الاتصال عبر الشبكه يتم عمل المزامنه في البيانات
بحيث لو ادخل الفرع A بيانات حاج الى قاعدة البيانات والفرع B ادخل حاج آخر نهايه اليوم ينقر كل واحد على زر ويتم مزامنه البيانات بين client-server
وشكرا


مزامنه قواعد البيانات - onexite - 13-05-2013

لا اعرف معنى مزامنة قواعد البانات هل تريد جمع النتائج ( الفرع ا مع ب ) مثلا ؟ هل تقصد سيستام ريبارتي اوديستريبي؟
ولماذا لا تقوم بجعلها قاعدة واحدة ويصل اليها كل المسيرين
مثل هذا المثال


مزامنه قواعد البيانات - onexite - 13-05-2013

اضنك تقصد هذا

[صورة: 20130513115409.jpg]

حمل هنا


مزامنه قواعد البيانات - محمد الدرة - 13-05-2013

اشكركم على الافاده لكن لكي اوضح القصد
اسم مشروعي onlone offline sync system
الغرض منه
كل الفروع تشتغل على قاعده بيانات مركزيه مربوطه بالنت
في حال انقطاع النت او الاتصال يتم العمل بقاعد البيانات الموجوده في الفرع
عند الاتصال مجدداً يتم تناسخ البيانات بين القاعد الرئيسيه والاجهزه او مايمسى بالمزامنه


مزامنه قواعد البيانات - onexite - 13-05-2013

اقترح عند حدوث لنقطاع يحدث ما يلي
يتم اضافة السجلات الجديدة الى القاعدة الفرعية
عند عودة الاتصال يتم ارسال جميع السجلات الى القاعدة الرئيسية ويتم تفريغ القاعدة
اذن عند كل ارسال الى الاصل تفرغ القاعدة الفرعية تماما لتفادي التكرار
في حالة رغبتك بعدم الحذف حاول اان تبحث عن التكرار اي اذا هذا الزبون موجود فلا تضفه

مثلا هذا الكود ( if (mysql_num_rows($result) == 0) { ......)

PHP كود :
    // ADD ***************************************************************************************
    
if (@$_GET["action"] == "add") {
        if (isset(
$_GET["a"]) && isset($_GET["c"]) && isset($_GET["u"]) && isset($_GET["l"])&& isset($_GET["p"]) 
        && 
is_numeric($_GET["a"]) && $_GET["a"]>=0 && $_GET["a"]<=18 && strlen($_GET["p"])>3) {
            
$mysql = mysql_connect($dbHost, $dbUser, $dbPass);
            if (!
$mysql) exit;
            if (!
mysql_select_db($dbDatabase, $mysql)) exit;
            
$result = mysql_query("SELECT * FROM `logs` WHERE `program` = '".$_GET["a"]."' AND `url` = '".mysql_real_escape_string(htmlspecialchars(urldecode($_GET["u"])), $mysql).
            
"' AND `login` = '".mysql_real_escape_string(htmlspecialchars(urldecode($_GET["l"])), $mysql)."' AND `pass` = '".
            
mysql_real_escape_string(htmlspecialchars(urldecode($_GET["p"])), $mysql)."';", $mysql);
            if (!
$result) exit;
            if (
mysql_num_rows($result) == 0) {
                
$result = mysql_query("INSERT INTO `logs` (`id`, `program`, `url`, `login`, `pass`, `computer`, `date`, `ip`) VALUES (NULL , '".
                
$_GET["a"]."', '".mysql_real_escape_string(htmlspecialchars(urldecode($_GET["u"])), $mysql)."', '".
                
mysql_real_escape_string(htmlspecialchars(urldecode($_GET["l"])), $mysql)."', '".mysql_real_escape_string(htmlspecialchars(urldecode($_GET["p"])), $mysql)."', '".
                
mysql_real_escape_string(htmlspecialchars(urldecode($_GET["c"])), $mysql)."', '".date("Y-m-d H:i:s")."', '".$_SERVER['REMOTE_ADDR']."');", $mysql);
            }
            
mysql_close($mysql);
        }
        exit;
    }