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

نام تاپیک: مشکل با ADO

  1. #1

    مشکل با ADO

    سلام
    من یک برنامه نوشته ام که یک بانک اطلاعاتی از نوع DBF را باز می کند و اطلاعات فارسی تحت داس موجود در این بانک را به فارسی تحت ویندوز تبدیل می کند قبلا این برنامه را با TABLE نوشته بودم وهیچ مشکلی نداشت ولی از آن موقعی که از ADO استفاده کرده ام مشکل پیدا کرده است اطلاعات پس از تبدیل در بانک ذخیره نمی شود و پیغام زیر را می دهد


    procedure TForm1.N1Click(Sender: TObject);
    VAR S,F:STRING;
    begin
    IF ADOTABLE1.Active THEN
    BEGIN
    F:=DBGrid1.SelectedField.DisplayName;
    ADOTABLE1.First ;
    S:=F+' آیا فیلد '+'تبدیل شود ؟';
    if MessageDlg(S,mtconfirmation,[mbyes,mbno&#9 3;,0)=mryes then
    WHILE NOT ADOTable1.EOF DO
    BEGIN
    IF NOT VARISNULL(ADOTABLE1[F]) THEN
    BEGIN
    S:=ADOTABLE1[F];
    if TRIM(s) <> '' THEN
    BEGIN
    ADOTABLE1.Edit;
    ADOTABLE1[F]:=FDOS_FWIN(S);
    ADOTABLE1.Post;
    END;
    END;
    ADOTABLE1.Next;
    END;
    END;
    end;

  2. #2
    من هم تو یه برنامه ای با همین پیغام مواجه شده بودم. پدرم رو در آورد.
    اما مشکل من از داس به ویندوز نبود. بعد از یه خورده سر و کله زدن فهمیدم که اگر یه فیلد Auto Number به جدول اضافه کنم و اون فیلد رو به عنوان Key قرار بدم ...مشکل بر طرف می شه.
    البته مشکل من در Access بود. نمی دونم این حرفا بدرت کار شما هم می خوره یا نه! :roll:


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  3. #3
    VIP آواتار hr110
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    1,460
    ظاهراً که مشکلی نیست، ولی یک راه دیگه را هم برای پییمایش جداول استفاده کن و اینبار از for و ADOTABLE1.RecNo:=I استفاده کن ممکن است مشکل سر اولین رکورد باشد.
    ... چه بگویم که غم از دل برود چون تو بیایی

  4. #4
    سلام
    خسته نباشید
    دستور شما را انجام دادم ولی مشکل حل نشد

  5. #5
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044
    میشه دو مطلب رو مشخص کنید که :
    1)روی چندومین خط میاستد(Error میده)
    2)تا چند رکورد و به عبارت بهتر تا کجا و چندومین رکورد رو آپ دیت میکنه؟

  6. #6
    سلام
    خسته نباشید
    روی دستور زیر این پیغام را می دهد

    ADOTABLE1.Post;

    روی اولین رکورد این پیغام را می دهد

  7. #7
    آقای شفیعی سلام
    آیا در داخل تابع FDOS_FWIN روی جدول کاری انجام نمیدهید (مثلا Edit ) ؟

  8. #8
    سلام

    function fdos_fwin(FDW : STRING):STRING;
    VAR FD:STRING;
    T,T1:INTEGER;
    SS:CHAR;
    BEGIN
    FD:=FDW;
    FDW:='';
    IF TRIM(FD) <> '' THEN
    for t:=0 to length(FD) do
    begin
    ss:=FD[t];
    T1:=Ord(SS);
    case T1 of
    1..127:
    FDW:=FDW+SS;
    128: FDW:=FDW+CHR(48);
    129: FDW:=FDW+CHR(49);
    130: FDW:=FDW+CHR(50);
    131: FDW:=FDW+CHR(51);
    132: FDW:=FDW+CHR(52);
    133: FDW:=FDW+CHR(53);
    134: FDW:=FDW+CHR(54);
    135: FDW:=FDW+CHR(55);
    136: FDW:=FDW+CHR(56);
    137: FDW:=FDW+CHR(57);

    138: FDW:=CHR(161)+FDW;
    139: FDW:=CHR(220)+FDW;
    140: FDW:=CHR(191)+FDW;
    141: FDW:=CHR(194)+FDW;
    142: FDW:=CHR(198)+FDW;
    143: FDW:=CHR(193)+FDW;
    144: FDW:=CHR(199)+FDW;
    145: FDW:=CHR(199)+FDW;
    146: FDW:=CHR(200)+CHR(157)+FDW;
    147: FDW:=CHR(200)+FDW;
    148: FDW:=CHR(129)+CHR(157)+FDW;
    149: FDW:=CHR(129)+FDW;
    150: FDW:=CHR(202)+CHR(157)+FDW;
    151: FDW:=CHR(202)+FDW;
    152: FDW:=CHR(203)+CHR(157)+FDW;
    153: FDW:=CHR(203)+FDW;
    154: FDW:=CHR(204)+CHR(157)+FDW;
    155: FDW:=CHR(204)+FDW;
    156: FDW:=CHR(141)+CHR(157)+FDW;
    157: FDW:=CHR(141)+FDW;
    158: FDW:=CHR(205)+CHR(157)+FDW;
    159: FDW:=CHR(205)+FDW;
    160: FDW:=CHR(206)+CHR(157)+FDW;
    161: FDW:=CHR(206)+FDW;
    162: FDW:=CHR(207)+FDW;
    163: FDW:=CHR(208)+FDW;
    164: FDW:=CHR(209)+FDW;
    165: FDW:=CHR(210)+FDW;
    166: FDW:=CHR(142)+FDW;
    167: FDW:=CHR(211)+CHR(157)+FDW;
    168: FDW:=CHR(211)+FDW;
    169: FDW:=CHR(212)+CHR(157)+FDW;
    170: FDW:=CHR(212)+FDW;
    171: FDW:=CHR(213)+CHR(157)+FDW;
    172: FDW:=CHR(213)+FDW;
    173: FDW:=CHR(214)+CHR(157)+FDW;
    174: FDW:=CHR(214)+FDW;
    175: FDW:=CHR(216)+CHR(157)+FDW;
    176..223 : FDW:=CHR(35)+FDW;
    224: FDW:=CHR(217)+CHR(157)+FDW;
    225: FDW:=CHR(218)+CHR(157)+FDW;
    226: FDW:=CHR(218)+CHR(157)+FDW;
    227: FDW:=CHR(218)+FDW;
    228: FDW:=CHR(218)+FDW;
    229: FDW:=CHR(219)+CHR(157)+FDW;
    230: FDW:=CHR(219)+CHR(157)+FDW;
    231: FDW:=CHR(219)+FDW;
    232: FDW:=CHR(219)+FDW;
    233: FDW:=CHR(221)+CHR(157)+FDW;
    234: FDW:=CHR(221)+FDW;
    235: FDW:=CHR(222)+CHR(157)+FDW;
    236: FDW:=CHR(222)+FDW;
    237: FDW:=CHR(223)+CHR(157)+FDW;
    238: FDW:=CHR(223)+FDW;
    239: FDW:=CHR(144)+CHR(157)+FDW;
    240: FDW:=CHR(144)+FDW;
    241: FDW:=CHR(225)+CHR(157)+FDW;
    242: FDW:=CHR(225)+CHR(199)+FDW;
    243: FDW:=CHR(225)+FDW;
    244: FDW:=CHR(227)+CHR(157)+FDW;
    245: FDW:=CHR(227)+FDW;
    246: FDW:=CHR(228)+CHR(157)+FDW;
    247: FDW:=CHR(228)+FDW;
    248: FDW:=CHR(230)+FDW;
    249: FDW:=CHR(229)+CHR(157)+FDW;
    250: FDW:=CHR(229)+FDW;
    251: FDW:=CHR(229)+FDW;
    252: FDW:=CHR(237)+CHR(157)+FDW;
    253: FDW:=CHR(237)+CHR(157)+FDW;
    254: FDW:=CHR(237)+FDW;
    255: FDW:=CHR(255)+FDW;
    end;
    end;
    FDOS_FWIN:=FDW;
    END;

  9. #9
    سلام
    در تابع بالا یک مشکل است وقتی اعداد را تبدیل می کند اعداد معکوس می شوند مثلا اگر درفیلد بانک اطلاعاتی نوشته ایم 39-13 پس از تبدیل می شود 13-39

  10. #10
    سلام
    پس تبدیل اطلاعات فارسی تحت داس به ویندوز . تصمیم گرفتم اطلاعات فارسی تحت ویندوز را به فونتهای IPT تبدیل کنم ولی کمی مشکل است چون برای این کار باید حروف قبل و بعد حرف مورد نظر رانیز چک نمود کسی از دوستان در این زمینه الگوریتم ویا طرحی برای راحتی کار ندارد

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

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