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

نام تاپیک: كپي ركوردهاي يك كوئري يا جدول در يك بانك ديگر بصورت درجا(اكسس)

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آبان 1384
    محل زندگی
    كاشان
    سن
    35
    پست
    315

    بروزخطا در كپي ركوردهاي يك كوئري يا جدول در يك بانك داراي پسورد ديگر(اكسس)

    سلام
    من يه كوئري دارم كه آخرين موجودي رو به من ميده
    حالا مي خوام تمام ركوردهاي اونو در يك فايل ديگه مثلا در جدول old ذخيره كنم .
    بافرض اينكه جدول old در بانك دوم وجود ندارد.
    اگه ميشه نحوه ي كپي كردن تمام اطلاعات يك جدول رو ازيك فايل به فايل داراي پسورد رو بفرماييد.
    آخرین ویرایش به وسیله mehdimdp : یک شنبه 27 اردیبهشت 1388 در 11:50 صبح

  2. #2
    کاربر دائمی آواتار babak_delphi
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    آستارا
    پست
    634

    نقل قول: كپي ركوردهاي يك كوئري يا جدول در يك بانك ديگر بصورت درجا(اكسس)


    SELECT * FROM table1 WHERE Conditions INTO table2

  3. #3
    کاربر دائمی آواتار shervin farzin
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    مشهد - shervinfarzin@gmail.com
    پست
    256

    نقل قول: كپي ركوردهاي يك كوئري يا جدول در يك بانك ديگر بصورت درجا(اكسس)

    سلام
    نقل قول نوشته شده توسط babak_delphi مشاهده تاپیک

    SELECT * FROM table1 WHERE Conditions INTO table2
    كدي كه دوست گرامي Babak_Delphi نوشتند براي مواقعي هست كه دو شرط برقرار باشه .
    1 - Table به نام table2 از قبل وجود نداشته باشه .
    2 - هر دو جدول table1 و table2 در يك فايل پايگاه داده باشند .
    بعلاوه ، يك اشكال كوچيك هم داره كه جاي INTO table2 قبل از FROM هست .
    به هر ترتيب ، از اونجا كه شما جداولتون در دو پايگاه داده جدا ( دو فايل جدا ) هست ، كد ايشون
    مشكلي رو حل نخواهد كرد .
    چون نفرموديد جدول old از قبل وجود داره يا نه من كد هر دو حالت رو مينويسم .
    فرض كنيد دو فايل Access با نامهاي Database1 و Database2 در ريشه درايو C داريد و فرض كنيم
    كه جدول new_Table داريد كه دو فيلد field_1 و field_2 داره و شما مايليد اين فيلدها رو به فيلدهاي
    هم عرضشون با همين نامها در جدول old_Table منتقل كنيد .
    اگر old_Table از پيش وجود نداشته باشد :
    with ADOQuery1 do
    begin
    sql.Clear;
    sql.Add('select * into old_Table in '+QuotedStr('C:\DataBase2.mdb'));
    sql.Add('from new_Table');
    ExecSQL;
    end;

    اگر جدول old_Table از قبل وجود دارد ( مهم نيست كه جدول old_Table مقدار داشته باشه يا نه
    فقط توجه كنيد كه فيلدهاي field_1 و field_2 در جدول مقصد از نوع AutoNumber نباشه ) :
    with ADOQuery1 do
    begin
    sql.Clear;
    sql.Add('insert into old_Table (field_1,field_2) in '+QuotedStr('C:\DataBase2.mdb'));
    sql.Add('select field_1,field_2 from new_Table');
    ExecSQL;
    end;

    توجه كنيد كه ADOQuery1 به فايل DataBase1 وصل هست .
    موفق باشيد .

  4. #4
    کاربر دائمی
    تاریخ عضویت
    آبان 1384
    محل زندگی
    كاشان
    سن
    35
    پست
    315

    نقل قول: كپي ركوردهاي يك كوئري يا جدول در يك بانك ديگر بصورت درجا(اكسس)

    نقل قول نوشته شده توسط shervin farzin مشاهده تاپیک
    سلام


    فرض كنيد دو فايل Access با نامهاي Database1 و Database2 در ريشه درايو C داريد و فرض كنيم
    كه جدول new_Table داريد كه دو فيلد field_1 و field_2 داره و شما مايليد اين فيلدها رو به فيلدهاي هم عرضشون با همين نامها در جدول old_Table منتقل كنيد .
    .... .
    حالا اگه database2 پسورد داشته باشه بايد چه كدي بنويسيم ؟

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آبان 1384
    محل زندگی
    كاشان
    سن
    35
    پست
    315

    نقل قول: كپي ركوردهاي يك كوئري يا جدول در يك بانك ديگر بصورت درجا(اكسس)

    متاسفانه من نتونستم از دستور IN براي فايلهاي پسورد دار استفاده كنم.
    لطفا منو راهنمايي كنيد.

  6. #6
    کاربر دائمی آواتار merced
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    خراسان جنوبي
    پست
    562

    نقل قول: كپي ركوردهاي يك كوئري يا جدول در يك بانك ديگر بصورت درجا(اكسس)

    نقل قول نوشته شده توسط mehdimdp مشاهده تاپیک
    حالا اگه database2 پسورد داشته باشه بايد چه كدي بنويسيم ؟

    كافي بود تو اكسس تست مي كردي :



    INSERT INTO (;PWD=yourpassword) NewTable ( F1, F2 ) IN 'C:\Database.mdb'[;PWD=yourpassword]
    SELECT OldTable.F1, OldTable.F2
    FROM OldTable;


  7. #7
    کاربر دائمی
    تاریخ عضویت
    آبان 1384
    محل زندگی
    كاشان
    سن
    35
    پست
    315

    كپي ركوردهاي يك كوئري يا جدول در يك بانك ديگر (اكسس)

    سلام
    از اينكه به من جواب ميدين متشكرم.
    من كد شما رو با يه كم دستكاري نوشتم ولي بازم ارور ميده . اگه اينجوري بنويسم ميگه not a valid password
    SELECT nakh.name, Sum(nakh.Vazn) AS [Sum Of Vazn], noe_nakh.name AS lname 
    into newtbl in 'c:\data2.mdb' [;PWD=1021]
    FROM noe_nakh INNER JOIN nakh ON noe_nakh.nakh_cod=nakh.name
    GROUP BY nakh.name, noe_nakh.name;

    و اگه به صورت زير بنويسم ميگه could not find installable ISAM
    SELECT nakh.name, Sum(nakh.Vazn) AS [Sum Of Vazn], noe_nakh.name AS lname 
    into newtbl in 'c:\data2.mdb' 'PWD=1021;'
    FROM noe_nakh INNER JOIN nakh ON noe_nakh.nakh_cod=nakh.name
    GROUP BY nakh.name, noe_nakh.name;
    آخرین ویرایش به وسیله mehdimdp : یک شنبه 27 اردیبهشت 1388 در 11:52 صبح

  8. #8
    کاربر دائمی
    تاریخ عضویت
    آبان 1384
    محل زندگی
    كاشان
    سن
    35
    پست
    315

    نقل قول: كپي ركوردهاي يك كوئري يا جدول در يك بانك ديگر بصورت درجا(اكسس)

    من همچنان منتظر پاسخ شما هستم.

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

    نقل قول: كپي ركوردهاي يك كوئري يا جدول در يك بانك ديگر بصورت درجا(اكسس)

    شما اول دستور Insert into ‌رو بنويس بعد Select رو

  10. #10
    کاربر دائمی
    تاریخ عضویت
    آبان 1384
    محل زندگی
    كاشان
    سن
    35
    پست
    315

    نقل قول: كپي ركوردهاي يك كوئري يا جدول در يك بانك ديگر بصورت درجا(اكسس)

    نقل قول نوشته شده توسط merced مشاهده تاپیک
    شما اول دستور Insert into ‌رو بنويس بعد Select رو
    بازم همون ارور:
    NOT VALID PASSWORD
    INSERT INTO OLDYEAR IN "F:\Mehdi's programs\Delphi\+Enayatproj\+Enayatproj\DATA88.MDB  " [;PWD=123456] SELECT COD, Ntolid AS otolid, Nsalon AS osalon, Nahar AS oahar, Nanabr AS oanbar, mande AS omande, NNsabt AS onsabt 
    FROM mojoodi;

  11. #11
    کاربر دائمی آواتار shervin farzin
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    مشهد - shervinfarzin@gmail.com
    پست
    256

    نقل قول: كپي ركوردهاي يك كوئري يا جدول در يك بانك ديگر بصورت درجا(اكسس)

    سلام
    با تشكر فراوان از دوست عزيز Merced و عذرخواهي به خاطر تاخير در پاسخ .
    استفاده از دستور IN در كد SQL يك روش براي آدرس دهي فايل Database هست . روش ديگه اي
    هم وجود داره كه در مورد سوال شما ، بايد از اون استفاده كنيد . به كد زير نگاه كنيد :
    select * from [;Database=c::\my_database.mdb;pwd=123].test

    اين كد عمل Select رو روي جدولي از پايگاه داده my_database انجام ميده كه اين پايگاه با پسورد
    به شماره 123 محافظت ميشه . اگر خوب به كد دقت كنيد خواهيد ديد كه در آدرس فايل به جاي
    نوشتن \:C نوشتم \::C . خوب اين غلط املايي نيست ! اگر فقط يك بار از علامت : استفاده كنيد
    دلفي فكر ميكنه كه شما در كد SQL از پارامتر استفاده ميكنيد و از شما انتظار Value داره ، اما با
    نوشتن :: به جاي : شما به دلفي گفتيد كه هيچ پارامتري در كار نيست .
    اگر به مثال خودم در پست 3 برگرديم ، نتيجه تغيير يافته اون كد ها به شكل زير خواهد بود .
    اگر old_Table از قبل وجود نداشته باشه :
    with ADOQuery1 do
    begin
    sql.Clear;
    sql.Add('select * into [;Database=C::\Database2.mdb;pwd=your_password].old_Table');
    sql.Add('from new_Table');
    ExecSQL;
    end;

    اگر old_Table از قبل وجود داره :
    with ADOQuery1 do
    begin
    sql.Clear;
    sql.Add('insert into [;Database=C::\Database2.mdb;pwd=your_password].old_Table (f_name,l_name)');
    sql.Add('select f_name,l_name from new_Table');
    ExecSQL;
    end;

    مجددا به خاطر تاخير عذر ميخوام .
    موفق باشيد .

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

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