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

نام تاپیک: مشکل در append کردن رکورد

  1. #1

    مشکل در append کردن رکورد

    کد زیر را درنظر بگیرید :
    DataModule1.Table_temp_Host.Append;
    DataModule1.Table_temp_Host.FieldValues['buyer']:=sComboBox9.Text+' '+sComboBox1.Text;
    DataModule1.Table_temp_Host.FieldValues['date_d']:=SolarDatePicker1.Text;
    DataModule1.Table_temp_Host.FieldValues['comments']:=sMemo1.Lines.Text;
    DataModule1.Table_temp_Host.FieldValues['user_1']:=user_fullname;
    DataModule1.Table_temp_Host.FieldValues['date_1']:=SolarDatePicker2.Text;
    DataModule1.Table_temp_Host.FieldValues['last_modified']:=1234;
    DataModule1.Table_temp_Host.FieldValues['state']:=0;
    DataModule1.Table_temp_Host.Post;
    ساختار جدول :
    CREATE TABLE  `tb_name`.`orders` (
    `id` int(10) unsigned NOT NULL auto_increment,
    `buyer` varchar(30) collate utf8_persian_ci NOT NULL,
    `user_1` varchar(30) collate utf8_persian_ci NOT NULL,
    `date_1` char(10) collate utf8_persian_ci NOT NULL,
    `last_modified` int(10) unsigned NOT NULL,
    `state` tinyint(3) unsigned NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci;
    وقتی کد بالا رو اجرا می کنم خطای زیر ر اتفاق می افته :
    cannot access field last_modified as type variant
    دلیلش چیه؟ چکار کنم؟ توضیح رو هم بدم که این فیلد اول از نوع datetime بود بعد عوضش کردم و int شد.

  2. #2

    نقل قول: مشکل در append کردن رکورد

    راستش دلیل این رو نمیدونم ، ولی کلا کار کردن با واریانت کار بسیار پرهزینه (از لحاظ پرفرمنس) و بسیار نا امن از نظر باگ دار شدن برنامه هست و استفاده ازش فقط در زمانهای خاص توصیه میشه در حات عادی باید بنویسی FieldByname.AsInteger یا .... اگر مشکل داشتی بازم بگو ببینیم مشکل چیه...

  3. #3

    نقل قول: مشکل در append کردن رکورد

    نقل قول نوشته شده توسط ghabil مشاهده تاپیک
    راستش دلیل این رو نمیدونم ، ولی کلا کار کردن با واریانت کار بسیار پرهزینه (از لحاظ پرفرمنس) و بسیار نا امن از نظر باگ دار شدن برنامه هست و استفاده ازش فقط در زمانهای خاص توصیه میشه در حات عادی باید بنویسی FieldByname.AsInteger یا .... اگر مشکل داشتی بازم بگو ببینیم مشکل چیه...
    سپاس. با تغییر واریانت مشکل حل شد اما کماکان برام سواله که چرا؟!؟؟

  4. #4

    نقل قول: مشکل در append کردن رکورد

    ببین مکانیزم تبدیل واریانت به تایپ مکانیزمه نسبتا پیچیده ای هست، البته سورسش موجود هست و میتونی بخونی ، اما همینطوری توی نگاه اول حدسی میگم که شاید کامپایلر ععدت رو از نوع Float تشخیص میده بجای Integer و در نتیجه مثلا مقداری که ست میشه 1234.00 هست که موجب خطا میشه

  5. #5
    کاربر دائمی آواتار Modernidea
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    »مشهد الرضا«
    پست
    573

    نقل قول: مشکل در append کردن رکورد

    سلام
    برای ذخیره تاریخ به صورت شمسی بهترین راه استفاده از NVarchar 10 یا در اکسس استفاده از TEXT 10 است.
    --یاهوو--

  6. #6

    نقل قول: مشکل در append کردن رکورد

    بهترین راه ذخیره تاریخ شمسی و میلادی استفاده از تایپ Date هست. جستجو کنید قبلا توضیح داده شده چرا

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

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