نمایش نتایج 1 تا 4 از 4

نام تاپیک: کپی رکوردهای یک جدول به جدول مشابه در دیتابیس دیگر

  1. #1
    کاربر دائمی آواتار idehrayan
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    نیشابور
    پست
    103

    Lightbulb کپی رکوردهای یک جدول به جدول مشابه در دیتابیس دیگر

    سلام
    دوستان عزیز با کد زیر می توانید اطلاعات جدول مبدا در دیتابیس مبدا را به جدول مشابه در دیتابیس مقصد کپی کنید
    برای تجمیع اطلاعات بدرد میخوره. احتمالا روشهای بهتری هم باشه ولی شاید بدرد بعضی از دوستان بخوره


    var i:Integer;begin
    qry1.Insert;
    for i := 0 to qry2.fieldcount - 1 do
    begin
    try
    qry1.fieldbyname( qry2.fields[i].fieldname ).value := qry2.fields[i].value
    except
    end;
    end;
    qry1.Post;

  2. #2
    کاربر تازه وارد آواتار ihpled
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    51

    نقل قول: کپی رکوردهای یک جدول به جدول مشابه در دیتابیس دیگر

    سلام دوستان من دقیقا به نیت پرسیدن همین سوال اودم و چون این تاپیک رو مشابه به سوالم دیدم همیج جا مطرح میکنم.
    این روشی که idehrayan فرمودند برای من بسیار کند هست من نمیخوام دونه به دونه روی رکورد های جدول مبدا حرکت کنم و جدا جدا اینسرت بزنم چون نزدیک 7000 رکورد باید حداقل روزی یک بار این کار براش انجام بشه که خیلی زمان بره و میخوام روشی باشه که کوئری insert into به یکباره از این کانکشن به اون کانکشن ارسال کنه.

    داستان اینه که من یک دیتابیس MySQL لوکال دارم که میخوام تنها چند تا از فیلدهای دو تا از جدولاشو به یک دیتابیس دیگه که روی یک هاست اینترنی هست ارسال کنم

    الان با Ado Connection های متفاوت به هر کدوم بصورت مجزا به خوبی کانکت میشم ولی برای نوشتن دستور insert into روی کوئری؛ چون اون کوئری تنها داره به یک AdoConnection اشاره می کنه بلد نیستم بنویسم

    کسی روشی داره که بتونم چند فیلد از یک جدولم رو به جدولی در کانکشن دیگه ارسال کنم؟

  3. #3

    نقل قول: کپی رکوردهای یک جدول به جدول مشابه در دیتابیس دیگر

    یکی از مهمترین دلایل کند بودن روش بالا می تونه این باشه که DataSet شما مثلا به یک DBGrid وصل هستش، در زمان پیمایش دیتاست در کنترلهای متصل به اون هم پیمایش انجام میشه که باعث ترسیمات گرافیکی میشه و در نتیجه سرعت رو شدیدا کاهش میده، پس قبل از هرگونه پیمایش در دیتاست باید اول دستور DisableControls رو اجرا کنید تا ارتباط دیتاست و کنترلها قطع بشه و در انتهای پیمایش هم دستور EnableControls رو اجرا کنید تا دوباره ارتباط برقرار بشه، مثال :

    ADOTable.DisableControls;
    try
    ADOTable.First;
    while not ADOTable.EOF do
    begin
    // Insert Record
    // Next
    end;
    finally
    ADOTable.EnableControls;
    end;

    ...
    داستان اینه که من یک دیتابیس MySQL لوکال دارم که میخوام تنها چند تا از فیلدهای دو تا از جدولاشو به یک دیتابیس دیگه که روی یک هاست اینترنی هست ارسال کنم
    یا باید با دو Connection جداگانه متصل بشید و با همون روش بالا جدول اول رو پیمایش کنید و در جدول دوم ثبت کنید یا روش بهتر اینکه از یک واسطه روی هاست استفاده کنید، مثلا یک وب سرویس ساده PHP که اطلاعات رو با یک فرمت مشخص مثل JSON براش بفرستید و اون به صورت لوکال توی بانک اطلاعاتی هاست ثبت کنه
    آخرین ویرایش به وسیله Mahmood_M : چهارشنبه 24 بهمن 1397 در 15:04 عصر

  4. #4
    کاربر تازه وارد آواتار ihpled
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    51

    نقل قول: کپی رکوردهای یک جدول به جدول مشابه در دیتابیس دیگر

    مثل همیشه عالــــی
    بسیار آموزنده بود
    سپاسسس

تاپیک های مشابه

  1. چطور دیتابیس slqexpress را متوقف کنم برای کپی فایل دیتابیس
    نوشته شده توسط esagraphic در بخش مدیریت دیتابیس (Database Administration)
    پاسخ: 0
    آخرین پست: جمعه 20 شهریور 1394, 17:51 عصر
  2. پاسخ: 7
    آخرین پست: شنبه 11 بهمن 1393, 09:50 صبح
  3. ریستور دیتابیس با پی اچ پی
    نوشته شده توسط ruhy در بخش PHP
    پاسخ: 0
    آخرین پست: یک شنبه 18 آبان 1393, 18:49 عصر
  4. پاسخ: 2
    آخرین پست: سه شنبه 29 فروردین 1391, 14:28 عصر
  5. مبتدی: آیا امکان استفاده از دیتابیس mdb در پی اچ پی هست؟
    نوشته شده توسط Hadiir.net در بخش PHP
    پاسخ: 2
    آخرین پست: شنبه 01 مرداد 1390, 12:19 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •