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

نام تاپیک: پیغام خطای ( clould not convert variant of type(null) into type(string هنگام شروع برنامه ؟

  1. #1

    پیغام خطای ( clould not convert variant of type(null) into type(string هنگام شروع برنامه ؟

    با سلام خدمت دوستان گرامی
    یه مشکل عجیب و کوچک
    یه برنامه داریم که قراره به صورت زیر یه عملیات کوچیک انجام بده :

    Label2.Caption:=Form1.Table1.FieldValues['mony'];
    و نتیجش بشه این 1.jpg
    که روی سیستم خودم مشکل نداره اما روی یه سیستم دیگه این پیغام موقع اجرای برنامه ظاهر میشه
    2.jpg

    و مقدار مبلغ در عکس شماره 1 خالی میمونه
    این رو هم بگم سایر بخشهای برنامه بدون مشکل کار میکنه و برنامه با بانک هیچ مشکلی نداره
    ممنون

  2. #2

    نقل قول: پیغام خطای ( clould not convert variant of type(null) into type(string هنگام شروع برنامه

    متد FieldValues یک مقدار Variant برگشت میده که با توجه به نوع داده ی مقصد ( در اینجا Label1.Caption یعنی String ) تبدیل میشه ، مقدار Variant برگشت داده شده ، برابر با مقدار درون فیلد هست ، وقتی یک فیلد مقدارش خالی باشه ، FieldValues هم یک Variant خالی یا Null رو برگشت میده که این مقدار Null نمی تونه به String تبدیل بشه ، پس پیغام خطایی به همین منظور نمایش داده میشه .
    برای نمایش مقدار یک فیدل راه های زیادی وجود داره ، اگر حتما می خواید از FieldValues استفاده کنید باید ابتدا Null نبودن مقدار برگشتی رو چک کنید ، مثلا :
    if not VarIsNull(Table1.FieldValues['Money']) then
    Caption := Table1.FieldValues['Money'];


    اما راه بهتر اینه که از FieldByName استفاده کنید و مقدار فیلد رو با AsString یا AsInteger یا ... بگیرید ، مثال :
    Label1.Caption := Table1.FieldByName('Money').AsString;


    راه دیگه اینه که فیلدها رو در Field Editor جدول Add کنید ، و مستقیما با فیلدها کار کنید :
    Label1.Caption := Table1Money.AsString;

    یا
    Label1.Caption := Table1Money.Text;

    یا ...

    موفق باشید ...

  3. #3

    نقل قول: پیغام خطای ( clould not convert variant of type(null) into type(string هنگام شروع برنامه

    از پاسختون خیلی ممنونم
    دقیقا همین طور بود و کد زیر کار رو بهتر کرد
    if not VarIsNull(Table1.FieldValues['Money']) then
    Caption := Table1.FieldValues['Money'];
    اما یه مشکل اصلی وجود داشت اون هم ایجاد اتوماتیک همه فرم ها در ابتدای اجرا بود . و از اونجایی که این کددر هنگام ایجاد فرم اجرا میشد لذا در همون ابتدای اجرای برنامه سعی در قرار دادن مقدار null در lable میکرد که اون هم حل شد
    باز هم سپاس

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

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

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