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

نام تاپیک: اضافه کردن رکوردی مشخص از دو جدول به جدولی دیگر

  1. #1
    کاربر دائمی
    تاریخ عضویت
    فروردین 1383
    محل زندگی
    ایران
    پست
    126

    اضافه کردن رکوردی مشخص از دو جدول به جدولی دیگر

    من از این دستور برای اضافه کردن رکورد از دو جدول به جدولی دیگر استفاده میکنم
    insert into output select D_no,D_date,code,E_date,Num from doc,exist where((e_date <"'+E_dz+'")and(D_date ="'+Tarikh+'"))
    error ی که برنامه میده هم اینه : '.'type mismatch in experesion'
    می خواستم ببینم مشکل از کجاست که برنامه error میده

  2. #2
    کاربر دائمی
    تاریخ عضویت
    دی 1382
    محل زندگی
    پشت كامپيوتر
    پست
    381
    سلام
    اگر منظورت از یک دیتابیس به دیتا بیس دیگر نام دیتابیس همراه نقطه بعلاوه جدول لازم است در غیر اینصورت برای کپی دو جدول فکر کنم
    from doc,exist باید برای شرط و نام فیلد هایت ازنام جدول بعلاوه نقطه مثلا Exist.e_date استفاده کنی یک مثال هم
    INSERT INTO MyTable (PriKey, Description)
    SELECT ForeignKey, Description
    FROM SomeView

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1383
    پست
    56
    با سلام
    اگر شما از کامپوننت قسمت BDE استفاده می کنید با استفاده از کامپونت Batchmove می توانی این کار را انجام دهی ولی اگر از کامپوننت قسمت ADO استفاده می کنید باید کارهای زیر را انجام دهید :
    1- ابتدا یک ADOCONECTION برای دیتابیس مبدا ایجاد می کنید و آنرا به بانک مورد نظرت متصل می کنی
    2- یک ADOCONECTION برای دیتابیس مقصد ایجاد می کنید و آنرا به بانک مورد نظر متصل می کنید .
    3- سپس با استفاده از دستور INSERT INTO به شرح زیر عمل می کنید .


    Insert Into Table2 (field1,field2,field3) VALUES (a1,a2,a3);f

    سپس پارامترهای a1,a2,a3 را با استفاده از دستور Param از جدول مبدا انتخاب می کنید . مثال :

    dm.table2.Parameters.ParamValues ['a1']:=dm.table1.FieldValues ['name'];

    بعد از این این دستورات را داخل یک حلقه While قرار می دهی شرطش را هم بصورتی قرار می دهی که جدول اول به آخر فایل برسد .
    س÷س برنامه بطور اتوماتیک از جدول اول اطلاعات را می خواند و در جدول دوم می ریزد . و تا زمان آخرین فیلد این کار را انجام می دهد .
    من خودم این کار را انجام داده ام و در برنامه نتیحه داده .
    موفق باشید

  4. #4
    کاربر دائمی
    تاریخ عضویت
    فروردین 1383
    محل زندگی
    ایران
    پست
    126
    جناب آقای mbr شما احتمالا سوال مرا اشتباه فهمیده اید و خدمت آقای alish باید عرض کنم که من میخواهم از جدولی به جدولی دیگر اینکار را انجام دهم و با راهکارهای شما هم این error رفع نگردید
    متشکر میشوم راهنمایی فرمایید

  5. #5
    کاربر دائمی
    تاریخ عضویت
    فروردین 1383
    محل زندگی
    ایران
    پست
    126
    عینا syntax همین دستور رو با dbisam امتحان کردم درست جواب داد اما بازهم در error bde میده
    آخه علتش چیه ؟ بعضی از دستورات sql با یک syntax مثلا در bde درست اجرا میشه و جواب میده اما در یک database دیگه ممکنه جواب نده.علت؟

  6. #6
    علت اینکه syntax دستورات sql متفاوته اینه که در واقع یک سری دستورات پایه ای در مورد sql وجود داره. حالا بعضی شرکتها، این دستورات رو تغییر می دن و یا بعضی هاشو حذف و یا دستورات جدیدی اضافه می کنن. تقریبا در تمام دیتابیسها، تفاوت دستورات اس کیو ال وجود دارد. باید به راهنمای دیتابیس مورد نظر رجوع کنید.

    موفق باشید

  7. #7
    کاربر دائمی
    تاریخ عضویت
    دی 1382
    محل زندگی
    پشت كامپيوتر
    پست
    381
    بهتر بود Syntax را می نوشتی :wink:
    دوست عزیز حال که از BDE استفاده می کنی بهتر است BatchMove را بکار ببری آسانتر است اگر Error دادبدون این کامپوننت با Index یا PK کار می کند پس یکی از آندو را در جدول داشته باش :D

  8. #8
    کاربر دائمی
    تاریخ عضویت
    فروردین 1383
    محل زندگی
    ایران
    پست
    126
    من میخوام یه رکورد خاص رو که از دو تا تیبل بدست اومده به یک تیبل دیگه اضافه کنم
    البته بانکم هم BDE است و همونطور که قبلا گفتم با SYNTAX بالا در DBISAM مشکلی نداشتم اما در BDE چرا.
    منتظر جواب دوستان هستم

  9. #9
    کاربر دائمی
    تاریخ عضویت
    فروردین 1383
    محل زندگی
    ایران
    پست
    126
    یعنی کسی نیست جواب منو بده
    اینهمه استاد اینجاست و سوال ها همینجوری بی جواب بمونن
    متشکرم

  10. #10
    کاربر دائمی
    تاریخ عضویت
    دی 1382
    محل زندگی
    پشت كامپيوتر
    پست
    381
    بهتر است آنقسمت از کد و Error را بنویسی تا زود تر جواب بگیری

  11. #11
    کاربر دائمی آواتار MiRHaDi
    تاریخ عضویت
    تیر 1383
    محل زندگی
    تهران - سوهانک
    پست
    982
    سلام
    Query رو بگیر ولی Select Query باشه نه Insert
    بعد یک DBSource بذار وصلش کن به اون یکی دیگه هم بذار بزن به Table مقصد
    بعد اینو بزن

    Query.first;
    while not query.eof do
    begin
    table.appendrecord([query.fieldvalue[' field1'],....]);
    end;


    حالا الآن دلفی ندارم !‌ همچین چیزیه :wink:
    بای

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

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