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

نام تاپیک: گرفتن اطلاعات محاسبه ای از بانک

  1. #1
    کاربر دائمی آواتار disiba
    تاریخ عضویت
    آبان 1389
    محل زندگی
    تهران
    پست
    152

    گرفتن اطلاعات محاسبه ای از بانک

    سلام
    یک جدول sql دارم که یک فیلد عدد صحیح به نام number داره . میخوام بزرگترین عدد رو به دست بیارم . از کامپوننت uniquery استفاده کردم . کد من به صورت زیر است

    uniquery.close;
    UniQuery.Close;
    UniQuery.SQL.Clear;
    uniquery.sql.add('declare @maxnum int');
    UniQuery.SQL.Add('select @maxnum=max(number) from customer');
    uniquery.execsql;
    edit.text:=uniquery.parambyname('@maxnum').value;


    هنگام اجرا پیام خطای زیر داده میشود

    parameter @maxnum not found
    برای حل مشکل چه پیشنهادی دارید ؟

  2. #2

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک

    ربطی به کامپوننت نداره
    دستورت اشتباهه
    uniquery.execsql;

    فکر کنم باید اینطوری عوض بشه
    uniquery.Open;


    در ضمن میتونی پارامتر خروجی رو در همون دستور sql تعریف کنی و نیازی به تعریف این مدلیه پارامتر نیست
    select max(number) As Max1 from customer


    max1 برای Query قابل شناسایی هستش

  3. #3
    کاربر دائمی آواتار disiba
    تاریخ عضویت
    آبان 1389
    محل زندگی
    تهران
    پست
    152

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک

    تغییرات شما رو اعمال کردم به این صورت

    query.sql.add('select max(number) as max1 from customer');
    edit.text:=query.parambyname('max1').value;
    ولی پیغام میده parameter max1 not found

  4. #4
    کاربر دائمی آواتار disiba
    تاریخ عضویت
    آبان 1389
    محل زندگی
    تهران
    پست
    152

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک

    سوال رو به این صورت مطرح میکنم . توسط query مقدار حداکثر فیلد number رو محاسبه میکنم . این عدد بدست امده رو چطوری به برنامه فراخوانی کنم ؟

  5. #5

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک

    چرا موقع خروجی از پارامتر استفاده می کنید؟مگر نباید از فیلد استفاده کنید؟!
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  6. #6
    کاربر دائمی آواتار disiba
    تاریخ عضویت
    آبان 1389
    محل زندگی
    تهران
    پست
    152

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک

    من فقط یک عدد نیاز دارم و اون هم ماکزیمم NUMBER است . حالت QUERY.FIELDBYNAME هم خطا میده

  7. #7

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک


    ADOQuery1.FieldByName('yourfield').Value

    خب چه خطایی می ده؟
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  8. #8
    کاربر دائمی آواتار disiba
    تاریخ عضویت
    آبان 1389
    محل زندگی
    تهران
    پست
    152

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک

    این حالت که شما نوشتید اطلاعات همه رکوردها ی فیلد رو میده که باید توی برنامه بزرگترین عدد فیلد در همه رکوردها رو بدست بیارم که نیاز به نوشتن یک حلقه است . می خوام این عمل محاسبه رو سمت سرور توسط sql انجام بدم . این عدد رو سمت سرور بدست میارم ولی چون عدد ، فیلد نیست نمیدونم چطوری به برنامه منتقل کنم .

  9. #9

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک

    برای انتقال بزرگترین عدد همین کافیه.
    کدتون رو کامل بگذارید بگم چکار کنید.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  10. #10
    کاربر دائمی آواتار disiba
    تاریخ عضویت
    آبان 1389
    محل زندگی
    تهران
    پست
    152

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک



    unit Unit1dataentry;


    interface


    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ExtCtrls, AdvPanel, AdvSmoothLabel, DBAdvSmoothLabel, StdCtrls, Mask,
    DBCtrlsEh, DB, MemDS, DBAccess, Uni, MainUnit, AdvGlassButton, DBCtrls, ADODB,
    Buttons;


    type
    TForm1dataentry = class(TForm)
    AdvPanel1: TAdvPanel;
    Label4: TLabel;
    Edit1daftar2: TEdit;
    UniQuery1dataentry: TUniQuery;
    UniConnection1: TUniConnection;
    procedure FormCreate(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;


    var
    Form1dataentry: TForm1dataentry;


    implementation


    {$R *.dfm}
    ///////////////////////////////////////////////////////////////////
    // Database : D_assess ( SQL Server )
    // Table : landbak
    // Field : Number int
    //////////////////////////////////////////////////////////////////
    procedure TForm1dataentry.FormCreate(Sender: TObject);
    var
    vv:variant;
    begin
    UniQuery1dataentry.Close;
    UniQuery1dataentry.SQL.Clear;
    UniQuery1dataentry.SQL.Add('select max(number) from landbak');
    UniQuery1dataentry.Open;
    edit1daftar2.text:=UniQuery1dataentry.FieldByName( 'number').AsString;
    end;
    end.







  11. #11
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک

    فقط کافیه که بانکت رو Sort کنی براساس فیلد number این طوری آخرین رکورد جدول بزرگترین عدد هست برای خوندش این کار رو بکن:
    uniQuery1.close;  uniQuery1.SQl.Text:='select number From Table1 Sort by Number';
    uniQuery1.open;
    uniQuery1.last;
    i:=uniQuery1.Field[0].asinteger;

    اما دقیقا نمیدونم که Sort by Number یا Sort:=Number
    یا اصلا از کد زیر هم میتونی استفاده کنی:
      uniQuery1.close;  uniQuery1.SQl.Text:='select number From Table1';
    uniQuery1.open;
    uniQuery1.Sort:='Number';
    uniQuery1.last;
    i:=uniQuery1.Field[0].asinteger;

    ببین کدوم کارت رو راه می اندازه
    موفق باشی دست علی همراهت

  12. #12

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک

    خب ببین وقتی داری این رو ران می کنی انتظار نداری که اس کیو ال بفهمه با چه نامی برات برگردونه:

    max(number)

    نمی دونم چرا در تست پارامتری درست نوشته بودی اما در اینجا نه!
    در این صورت با یک نام پیش فرض مثل فیلد یک و این چیزا برمی گرده، می تونی از دسترسی ترتیبی استفاده کنی که چرته، بهترین کار اینه:

    select max(number) as number

    که بفهمه نام فیلد خروجی چیه.

    سورت کردن هم خودش یک کاره و البته خیلی خیلی زمان بر تر از گرفتن ماکسه!!
    دلیلش هم اینه که دی بی ام اس ها معمولا اطلاعات تجمیعی جداول رو هم همراه جداول ذخیره می کنند. مثلا همین مین و ماکس و کانت.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  13. #13
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک

    آقای زالی تمامی بانک های اطلاعاتی از قبیل access و sql و sqlite این سه اطلاعات تجمیعی مثل مین و ماکس و کانت رو دارند یا نه فقط Sql داره؟
    اگر این ها پیشفرض بانک اطلاعاتی باشه که خیلی خوبه

  14. #14
    کاربر دائمی آواتار disiba
    تاریخ عضویت
    آبان 1389
    محل زندگی
    تهران
    پست
    152

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک

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

  15. #15

    نقل قول: گرفتن اطلاعات محاسبه ای از بانک

    اس کیو ال و اوراکل نگه می دارند. بقیه رو باید از سایت سازنده اون ببینید.
    البته این طور نیست که برای هر سلکتی با هر where ای باشه، در سطح کل اطلاعات جدوله. برای این که این اطلاعات سریعتر قابل واکشی باشند.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

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

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