Показать сообщение отдельно
  #5  
Старый 12.07.2013, 08:09
SashaBucheR SashaBucheR вне форума
Прохожий
 
Регистрация: 11.07.2013
Сообщения: 3
Версия Delphi: RAD Studio 2009
Репутация: 10
По умолчанию

Выбивает на строке OpenADOTables
Код:
procedure TDM.DataModuleCreate(Sender: TObject);
begin
    ConfigParams := TParams.Create;
    LoadConfig(ExtractFilePath(Application.ExeName)+'config.ini');
    BuildConnection;
    OpenADOTables
end;

Вот здесь например, при создании новой карточки:
Код:
procedure TfrmCardsIn.NewInvoiceIn;
var
    mR : integer;
begin
    SetEnebledControl(ATYPE);
    DM.tblInvoiceIn.Append;
    DM.tblInvoiceIn['TYPE'] := ATYPE;
    case ATYPE of
    0:
    begin
        DM.tblInvoiceIn['XDSTID']:= '99999';
        DM.tblInvoiceIn['XSRCID']:= '0';
        DM.tblInvoiceIn.FieldByName('GUID').Value := DM.tblInvoiceMax.FieldByName('AMAX').AsInteger + 1;
        DM.tblInvoiceIn.FieldByName('SERIES').Value := DM.tblMaxNumber.FieldByName('SERIES').AsString ;
        DM.tblInvoiceIn.FieldByName('ANUMBER1').Value := DM.tblMaxNumber.FieldByName('ANUMBER').AsInteger  + 1;
        DM.tblInvoiceIn.FieldByName('ANUMBER2').Value := DM.tblMaxNumber.FieldByName('ANUMBER').AsInteger  + 1;
        DM.tblInvoiceIn.FieldByName('ADATE').Value := StrToDate(DM.ConfigParams.FindParam('WorkDate').Value);
        DM.tblInvoiceIn.FieldByName('DSTAMOUNT').Value := 0;
        DM.tblInvoiceIn.FieldByName('SRCAMOUNT').Value := 0;
    end;
    1:
    begin
        DM.tblInvoiceIn['XDSTID']:= '0';
        DM.tblInvoiceIn['XSRCID']:= '0';
        DM.tblInvoiceIn.FieldByName('GUID').Value := DM.tblInvoiceMax.FieldByName('AMAX').AsInteger + 1;
        DM.tblInvoiceIn.FieldByName('SERIES').Value := DM.tblMaxNumber.FieldByName('SERIES').AsString ;
        DM.tblInvoiceIn.FieldByName('ANUMBER1').Value := DM.tblMaxNumber.FieldByName('ANUMBER').AsInteger  + 1;
        DM.tblInvoiceIn.FieldByName('ANUMBER2').Value := DM.tblMaxNumber.FieldByName('ANUMBER').AsInteger  + 1;
        DM.tblInvoiceIn.FieldByName('ADATE').Value := StrToDate(DM.ConfigParams.FindParam('WorkDate').Value);
        DM.tblInvoiceIn.FieldByName('DSTAMOUNT').Value := 0;
        DM.tblInvoiceIn.FieldByName('SRCAMOUNT').Value := 0;

        DM.tblMinNumber.Parameters.ParamByName('@SELFDIRID').Value := DM.tblInvoiceIn.FieldByName('XDSTID').AsString;
        DM.tblMinNumber.Open;
        DM.tblInvoiceIn.FieldByName('SERIES').AsString := DM.tblMinNumber.FieldByName('SERIES').AsString;
        DM.tblInvoiceIn.FieldByName('ANUMBER1').AsInteger := DM.tblMinNumber.FieldByName('ANUMBER').AsInteger;
        DM.tblInvoiceIn.FieldByName('ANUMBER2').AsInteger := DM.tblMinNumber.FieldByName('ANUMBER').AsInteger;
        DM.tblMinNumber.Close
    end;
    2:
    begin
        DM.tblInvoiceIn['XDSTID']:= '0';
        DM.tblInvoiceIn['XSRCID']:= '99999';
        DM.tblInvoiceIn.FieldByName('GUID').Value := DM.tblInvoiceMax.FieldByName('AMAX').AsInteger + 1;
        DM.tblInvoiceIn.FieldByName('SERIES').Value := DM.tblMaxNumber.FieldByName('SERIES').AsString ;
        DM.tblInvoiceIn.FieldByName('ANUMBER1').Value := 0;//DM.tblMaxNumber.FieldByName('ANUMBER').AsInteger  + 1;
        DM.tblInvoiceIn.FieldByName('ANUMBER2').Value := 0;//DM.tblMaxNumber.FieldByName('ANUMBER').AsInteger  + 1;
        DM.tblInvoiceIn.FieldByName('ADATE').Value := StrToDate(DM.ConfigParams.FindParam('WorkDate').Value);
        DM.tblInvoiceIn.FieldByName('DSTAMOUNT').Value := 0;
        DM.tblInvoiceIn.FieldByName('SRCAMOUNT').Value := 0;

    end;
    3:
    begin
        DM.tblInvoiceIn['XDSTID']:= '0';
        DM.tblInvoiceIn['XSRCID']:= '99999';
        DM.tblInvoiceIn.FieldByName('GUID').Value := DM.tblInvoiceMax.FieldByName('AMAX').AsInteger + 1;
        DM.tblInvoiceIn.FieldByName('SERIES').Value := DM.tblMaxNumber.FieldByName('SERIES').AsString ;
        DM.tblInvoiceIn.FieldByName('ANUMBER1').Value := 0;//DM.tblMaxNumber.FieldByName('ANUMBER').AsInteger  + 1;
        DM.tblInvoiceIn.FieldByName('ANUMBER2').Value := 0;//DM.tblMaxNumber.FieldByName('ANUMBER').AsInteger  + 1;
        DM.tblInvoiceIn.FieldByName('ADATE').Value := StrToDate(DM.ConfigParams.FindParam('WorkDate').Value);
        DM.tblInvoiceIn.FieldByName('DSTAMOUNT').Value := 0;
        DM.tblInvoiceIn.FieldByName('SRCAMOUNT').Value := 0;

    end;

    end;


    Mr := frmEditCard.ShowModal;
    if mR = mrOK then
    begin
        try
            DM.tblInvoiceIn.Post;
            case ATYPE of
            0: DM.qryInvoiceIn.Requery;
            1: DM.qryInvoiceReplace.Requery;
            2: DM.qryInvoiceRemove.Requery;
            3: DM.qryInvoiceSpoil.Requery;
            end;
            //(dsCards.DataSet).Refresh;
            dsCards.DataSet.Locate('GUID',DM.tblInvoiceIn['GUID'],[])
        except
            on E: Exception do
            begin
                ShowMessage(E.Message);
                DM.tblInvoiceIn.Cancel
            end
        end;
    end
    else DM.tblInvoiceIn.Cancel
end;

Вот содержание файла Config.ini:

PictureName = T:\Programs\Other\Kachie\123.JPG
WorkDate = 01.01.2012
ZPArcDir = D:\!Kachie\ZPArxiv
ZPDir1 = D:\!Kachie\zarpl
ZPDir2 = D:\!Kachie\Rabzar
TabelDir = D:\!Kachie\TabelArxiv
BankListDir = D:\!Kachie\zarpl\Spiski\001
TabelPrintFileName = Табель
SERVER = SERVER-GET\SQL
DATABASE = ORPP


Там была проблема в таблицах. В ComboBox как-то DataSource сбились. Вот только теперь выдает "Exception class EDatabaseError with message: Circular datalinks are not allowed" при создании формы.

В DataSource не тот Table указал. Теперь все заработало! Спасибо!
Ответить с цитированием