platform Delphi 7 on windows 2000, sp4., database sybase asa 9.
   
  i have a payroll processing program that does some lengthy processing on 
employees, using stored procedures, the design is that on button click, select 
a query of all employees and then pass varibles of an employee to different 
procedures that do different computations on values in a database. the problem 
is that if a try to enhance a procedure e.g. add another function so that they 
are more than 23 procedures i get an error, some variables are not found. but 
when they are just 23 procedures all variables are found and the program loops 
through all records, e.g. 200 employees. is there a way of doing this lengthy 
processing, and not busting the memory, or the resource governor in the 
database. any help will be appreciated, 
  Joseph Fuchaka. Nairobi.
   
    with qryAllEmployees do begin
      close;
      sql.Clear;
      sql.Add('SELECT employee_id, employee_no, company_id, first_name, 
last_name FROM employees WHERE company_id=:company_id');
      
parameters.ParamByName('company_id').Value:=get_company_id(ComboBoxCompany.Text);
      Open;
  end;//with
  Gauge1.MaxValue:=qryAllEmployees.RecordCount;
  ProgressCircle1.MaxValue:=23;
  qryAllEmployees.First;
  while not qryAllEmployees.Eof do begin
      year_descr:=trim(ComboBoxYear.Text);
      month_descr:=trim(ComboBoxMonth.Text);
      employee_id:=qryAllEmployeesemployee_id.Value;
          ProgressCircle1.StepBy(1);
      basic_salary:=get_basic_salary(employee_id); // step 1
      non_taxable_benefits:=get_non_taxable_benefits(employee_id);
          ProgressCircle1.StepBy(1);//step 2
        update_emp_monthly_salaries(employee_id, year_descr, month_descr,
                                basic_salary, non_taxable_benefits);//step 3
          ProgressCircle1.StepBy(1);//step 3
      insert_value_of_quaters(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//Step 4
      calculate_gross_pay(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//Step 5
      calculate_e1(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//Step 6
      calculate_e2_and_e3(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 7
      calculate_f(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 8
      calculate_g(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 9
      calculate_h(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 10
      calculate_j(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 11
      calculate_k(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 12
      calculate_l(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 13
      calculate_nhif(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 14
      calculate_nssf(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 15
      calculate_sacco_deductions(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 16
      calculate_other_deductions(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 17
      insert_non_taxable_earnings(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 18
      calculate_variable_deductions(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 19
      calculate_salary_arrears(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 20
      insert_pensions(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 21
      calculate_net_pay(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 22
      fill_bank_details(employee_id, year_descr, month_descr);
          ProgressCircle1.StepBy(1);//step 23
      fill_employee_details(employee_id, year_descr, month_descr);
          //application.ProcessMessages;
  qryAllEmployees.Next;
  Gauge1.Progress:=Gauge1.Progress + 1;
  end;
  //preparation of payroll complete
//  process_loans;
  ShowMessage('batch processing complete !');
   



 
---------------------------------
Have a burning question? Go to Yahoo! Answers and get answers from real people 
who know.

[Non-text portions of this message have been removed]

Reply via email to