2 ضمیمه
پیغام خطای ( clould not convert variant of type(null) into type(string هنگام شروع برنامه ؟
با سلام خدمت دوستان گرامی
یه مشکل عجیب و کوچک :متعجب:
یه برنامه داریم که قراره به صورت زیر یه عملیات کوچیک انجام بده :
نقل قول:
Label2.Caption:=Form1.Table1.FieldValues['mony'];
و نتیجش بشه این ضمیمه 65853
که روی سیستم خودم مشکل نداره اما روی یه سیستم دیگه این پیغام موقع اجرای برنامه ظاهر میشه
ضمیمه 65854
و مقدار مبلغ در عکس شماره 1 خالی میمونه
این رو هم بگم سایر بخشهای برنامه بدون مشکل کار میکنه و برنامه با بانک هیچ مشکلی نداره
ممنون
نقل قول: پیغام خطای ( 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;
یا ...
موفق باشید ...
نقل قول: پیغام خطای ( clould not convert variant of type(null) into type(string هنگام شروع برنامه
از پاسختون خیلی ممنونم
دقیقا همین طور بود و کد زیر کار رو بهتر کرد
نقل قول:
if not VarIsNull(Table1.FieldValues['Money']) then
Caption := Table1.FieldValues['Money'];
اما یه مشکل اصلی وجود داشت اون هم ایجاد اتوماتیک همه فرم ها در ابتدای اجرا بود . و از اونجایی که این کددر هنگام ایجاد فرم اجرا میشد لذا در همون ابتدای اجرای برنامه سعی در قرار دادن مقدار null در lable میکرد که اون هم حل شد
باز هم سپاس