Цитата:
Сообщение от
smoyk
Или я не прав и Вы можете такие примеры привести?
CRONUS Россия ЗАО (navision sp3) на ms sql 2005
Типичный пример на 17 таблице.
Прежде всего, заполняем фин книгу (300 записей - это не серьезно)
Код:
Name DataType Subtype Length
i Integer
dlg Dialog
recGenJnlTEMP Record Gen. Journal Line
recGenJnlDimTEMP Record Journal Line Dimension
Gen. Jnl.-Post Line Codeunit Gen. Jnl.-Post Line
---------
dlg.OPEN('@1##################');
FOR i := 1 TO 1000000 DO BEGIN
dlg.UPDATE(1,i DIV 100);
recGenJnlTEMP.DELETEALL;
recGenJnlTEMP.INIT;
recGenJnlTEMP.VALIDATE("Posting Date" , 010105D);
recGenJnlTEMP.VALIDATE("Account Type" , recGenJnlTEMP."Account Type"::Customer);
recGenJnlTEMP.VALIDATE("Account No." , '49633663');
recGenJnlTEMP.VALIDATE("Document No." , 'INITIAL');
recGenJnlTEMP.VALIDATE(Description , 'Автозапонение');
recGenJnlTEMP.VALIDATE(Amount,100);
recGenJnlTEMP.VALIDATE("Bal. Account Type",recGenJnlTEMP."Bal. Account Type"::"G/L Account");
recGenJnlTEMP.VALIDATE("Bal. Account No.",'68-800');
recGenJnlTEMP.VALIDATE("Shortcut Dimension 1 Code",'ПРОДАЖИ');
recGenJnlTEMP.VALIDATE("Shortcut Dimension 2 Code",'МЕРСЕДЕС');
recGenJnlTEMP.INSERT;
recGenJnlDimTEMP.DELETEALL;
recGenJnlDimTEMP.INIT;
recGenJnlDimTEMP."Table ID" := 81;
recGenJnlDimTEMP."Dimension Code" := 'ПРОДМЕНЕД';
recGenJnlDimTEMP."Dimension Value Code" := 'ВК';
recGenJnlDimTEMP.INSERT;
"Gen. Jnl.-Post Line".RunWithCheck(recGenJnlTEMP,recGenJnlDimTEMP);
COMMIT;
END;
Обновляем статистику, перестраиваем индексы и выполняем запрос:
Код:
recGLEntry.RESET;
recGLEntry.SETCURRENTKEY("Source Type","Source No.");
recGLEntry.SETRANGE("Source Type",recGLEntry."Source Type"::Customer);
recGLEntry.SETRANGE("Source No.",'49633663');
recGLEntry.SETRANGE("Document No.",'104005');
recGLEntry.FIND('-');
Код SQL при этом:
Код:
exec sp_executesql
N'SELECT * FROM "CRONUS"."dbo"."CRONUS Россия ЗАО$G_L Entry" WITH (READUNCOMMITTED) WHERE (("Source Type"=@P1)) AND (("Source No_"=@P2)) AND (("Document No_"=@P3)) ORDER BY "Source Type","Source No_","G_L Account No_","Global Dimension 1 Code","Global Dimension 2 Code","Business Unit Code","Posting Date","Entry No_" OPTION (FAST 5)',
N'@P1 int,@P2 varchar(20),@P3 varchar(20)'
,1,'49633663','104005'
План запроса: