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

نام تاپیک: نوع bigint

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    109

    نوع bigint

    فیلدی در اسکیو ال دارم با نوع BIGINT . وقتی این فیلد را می خواهم در دلفی ورود اطلاعات کنم متغیر خود را از نوع INT64 گرفتم . ولی وقتی مقداری بالاتر از 15 رقم می زنم در بانک 0 ذخیره می کند . باید از جه TYPE یی استفاده کنم ؟

  2. #2
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    109
    یعنی هیچ کس تا حالا با BIGINT کار نکرده ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟

  3. #3
    دوست عزیز یک مشکل دیگه ایی وجود داره .

    Integer (whole number) data from -2^63 (-9223372036854775808) through 2^63-1 (9223372036854775807). Storage size is 8 bytes.


    اگه دقت کنی میبینی سایز bigint 19 رقمه.پس مشکلت یک جای دیگه هست احتمالا.

  4. #4
    منهم به این مشکل برخوردم و هر کاری کردم نشد ولی اگه از نوع Real‌ در دلفی استفاده کنی نتیجه قدری بهتره

  5. #5
    میشه بگی با چه دستوری در دیتابیس ذخیره میکنی ؟ (کدش رو بزار)

  6. #6
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    109
    سلام دوستان
    1. ماکسیمم عددی که bigint در sql میگیره دقیقا برابر است با ماکسیمم عددی که int64 تو دلفی میگیره و هر دو 19 رقم هستند .
    2. من یه عدد در یک Edit از کاربر میگیرم . با دستور StrToInt64 این مقدار رو به پارامتر کلاسم میدم . و بعد هم با دستور Int64ToStr به رشته Insert می چسبونم . و سپس این دستور Insert که تو دلفی ساخته شده در sql اجرا می شه .
    عین همین کار رو با نوع Real و دستورات StrToFloat , FloatToStr هم انجام دادم که در این حالت لحظه ای که StrToFloat می کنیم عدد را E دار می کند .

    ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ چه کار کنم ؟؟؟؟؟

  7. #7
    نقل قول نوشته شده توسط SADAF
    سلام دوستان
    1. ماکسیمم عددی که bigint در sql میگیره دقیقا برابر است با ماکسیمم عددی که int64 تو دلفی میگیره و هر دو 19 رقم هستند .
    2. من یه عدد در یک Edit از کاربر میگیرم . با دستور StrToInt64 این مقدار رو به پارامتر کلاسم میدم . و بعد هم با دستور Int64ToStr به رشته Insert می چسبونم .
    فعلا و فقط برای اینکه دقیقا متوجه بشیم اطلاعات رو داری کجا از دست میدی بجای اینکه یکبار به Int64 تبدیل کنی همون String رو مستقیم با دستور SQL بزن توی دیتابیس (حتی بدون ساختن Parametr و Value دادن پارامتر) یعنی یک چیزی اینطوری :

    CommandText:= ' Insert into Table name (BIgIntFiled) Values(' + Edit1.Text + ')';

    بعد نتیجه رو بگو تا مرحله بعد رو تست کنیم.

  8. #8
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    109
    سلام دوستان
    مشکلی که من اینجا عنوان کردم رو بچه های بخش برنامه نویسیم برخورده بودند و خودم کنترل نکرده بودم .دیشب که نهایتا خودم این مشکل رو کنترل کردم دیدم اصلا مشکلی وجود نداره و با کد زیر به راحتی می تونیم مقدار Bigint را ذخیره کنیم

    procedure TForm1.BitBtn2Click(Sender: TObject);
    var a,b:Int64;
    begin
    a:=StrToInt64(Edit1.Text);
    ADOCommand1.CommandText:='Insert Into Table1 Values('+IntToStr(a)+')';
    ADOCommand1.Execute;
    end;

    البته برای FieldByName کردن باید از روش زیر استفاده کرد :

    procedure TForm1.BitBtn4Click(Sender: TObject);
    var a,b:Int64;
    begin
    a:=ADOQuery1.FieldByName('a').Value;
    end;

    ظاهرا خودم سر کار بودم توسط همکارانم . . .
    ممنون از همه

تاپیک های مشابه

  1. تغییر DataType ستون PK از int به bigint
    نوشته شده توسط A.Farzin در بخش SQL Server
    پاسخ: 2
    آخرین پست: دوشنبه 03 دی 1386, 19:40 عصر
  2. فرق bigint و decimal به عنوان PK و تاثیر آن در کارایی
    نوشته شده توسط Microsoft.net در بخش SQL Server
    پاسخ: 4
    آخرین پست: شنبه 24 شهریور 1386, 13:26 عصر
  3. خطا در تبدیل varchar به bigint
    نوشته شده توسط DataMaster در بخش SQL Server
    پاسخ: 1
    آخرین پست: چهارشنبه 01 آذر 1385, 22:34 عصر

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

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