6. April 2009 18:38
6. April 2009 19:39
Record.SETRANGE(FieldX, ValueY);
IF NOT Record.ISEMPTY THEN
Record.DELETEALL;
6. April 2009 21:49
7. April 2009 09:48
OBJECT Codeunit 90100 Execute SQL (MS ADO)
{
OBJECT-PROPERTIES
{
Date=17.10.08;
Time=12:00:00;
Version List=SSI/PTB#ADO1.00;
}
PROPERTIES
{
OnRun=BEGIN
END;
}
CODE
{
VAR
ADOConnection@1000000008 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000514-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Connection";
ADORecSet@1000000011 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000535-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Recordset";
ADOErrors@1000000015 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000501-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Errors";
Server@1000000005 : Record 2000000047;
Databases@1000000006 : Record 2000000048;
Statement@1000000007 : Text[1024];
SQLConnectionOK@1000000018 : Boolean;
Text001@1000000026 : TextConst
'ENU=You have exceeded the maximum line length of 1000 characters.';
Text002@1000000025 : TextConst
'ENU=The ADO connection to the database has been closed.';
Text003@1000000024 : TextConst
'ENU=There is no SQL Connection setup.';
Text004@1000000023 : TextConst
'ENU=The SQL Connection information specified is incorrect. Please verify the User ID and Password.';
Text005@1000000022 : TextConst
'ENU=Attempting to Connect to the SQL Server ...';
Text006@1000000021 : TextConst
'ENU=Connection Established.';
Text007@1000000020 : TextConst
'ENU=A Server Name must be entered.';
IsError@1000000016 : Boolean;
NoOfRecords@1000000014 : Integer;
Window@1000000009 : Dialog;
Text010@1000000004 : TextConst
'ENU=No SQL statement defined.';
Text011@1000000002 : TextConst
'ENU=The SQL statement returned an Error.';
Text012@1000000001 : TextConst
'ENU=Execute SQL Statement ...\#1###############################################';
PROCEDURE ExecuteStatement@1000000000(InStatement@1000000000 : Text[1024]);
BEGIN
IF (InStatement = '') THEN
ERROR(Text010);
Statement := InStatement;
IF GUIALLOWED THEN BEGIN
Window.OPEN(Text012);
Window.UPDATE(1, Statement);
END;
ServerConnect(FALSE);
SendSQLStatement();
ServerDisconnect();
IF GUIALLOWED THEN
Window.CLOSE;
IF IsError THEN
ERROR(Text011);
END;
PROCEDURE ServerConnect@1020004(TestConnection@1020003 : Boolean);
VAR
ConnectionString@1020000 : Text[100];
CursorLocation@1020001 : Integer;
BEGIN
IF ISCLEAR(ADOConnection) THEN
CREATE(ADOConnection);
ConnectionString := 'Server=' + GetCurrentServer;
ConnectionString += ';Trusted_Connection=Yes;';
// CursorLocation:
// 3 : Uses client-side cursors
// 2 : Uses data provider or driver-supplied cursors
// 1 : Not Valid, only for backward compatibility
CursorLocation := 3;
ADOConnection.Provider('SQLOLEDB');
ADOConnection.CursorLocation(CursorLocation);
ADOConnection.ConnectionString(ConnectionString);
ADOConnection.Open;
// ADO State Values:
// adStateClosed : 0 = Object is closed
// adStateOpen : 1 = Object is open
// adStateConnecting : 2 = Attempting to connect
// adStateExecuting : Not used
// adStateFetching : Not used
SQLConnectionOK := (ADOConnection.State = 1);
IF NOT SQLConnectionOK THEN
ERROR(Text004)
ELSE IF SQLConnectionOK AND TestConnection THEN BEGIN
MESSAGE(Text006);
ServerDisconnect;
END;
END;
PROCEDURE ServerDisconnect@1020008();
BEGIN
ADOConnection.Close;
END;
PROCEDURE SendSQLStatement@1020002();
VAR
RecordsAffected@1020002 : Integer;
Options@1020003 : Integer;
BEGIN
RecordsAffected := 0;
// Command Option Values:
// adCmdFile : 256 = Evaluate as a previously persisted file
// adCmdStoredProc : 4 = Evaluate as a stored procedure
// adCmdTable : 2 = Have the provider generate a SQL query and return all rows from the specified table
// adCmdTableDirect : 512 = Return all rows from the specified table
// adCmdText : 1 = Evaluate as a textual definition
// adCmdUnknown : 8 = The type of the CommandText parameter is unknown
// adCmdUnspecified : -1 = Default, does not specify how to evaluate
Options := 1;
IF ADOConnection.State = 1 THEN BEGIN
ADOConnection.DefaultDatabase(GetCurrentDatabase);
ADOConnection.CommandTimeout(0); // Timeout set to indefinitely
ADOConnection.Execute(Statement, RecordsAffected, Options);
ADOErrors := ADOConnection.Errors();
IsError := ADOErrors.Count > 0;
IF IsError THEN
EXIT;
YIELD;
END ELSE
ERROR(Text002);
END;
PROCEDURE GetCurrentServer@1020013() : Text[250];
BEGIN
Server.SETRANGE("My Server", TRUE);
Server.FINDFIRST;
EXIT(Server."Server Name");
END;
PROCEDURE GetCurrentDatabase@1000000001() : Text[250];
BEGIN
Databases.SETRANGE("My Database", TRUE);
Databases.FINDFIRST;
EXIT(STRSUBSTNO('[%1]', Databases."Database Name"));
END;
EVENT ADOConnection@1000000008::InfoMessage@0(pError@1000000002 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000500-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Error";adStatus@1000000001 : Integer;pConnection@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000550-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Connection");
BEGIN
END;
EVENT ADOConnection@1000000008::BeginTransComplete@1(TransactionLevel@1000000003 : Integer;pError@1000000002 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000500-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Error";adStatus@1000000001 : Integer;pConnection@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000550-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Connection");
BEGIN
END;
EVENT ADOConnection@1000000008::CommitTransComplete@3(pError@1000000002 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000500-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Error";adStatus@1000000001 : Integer;pConnection@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000550-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Connection");
BEGIN
END;
EVENT ADOConnection@1000000008::RollbackTransComplete@2(pError@1000000002 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000500-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Error";adStatus@1000000001 : Integer;pConnection@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000550-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Connection");
BEGIN
END;
EVENT ADOConnection@1000000008::WillExecute@4(VAR Source@1000000007 : Text[1024];CursorType@1000000006 : Integer;LockType@1000000005 : Integer;VAR Options@1000000004 : Integer;adStatus@1000000003 : Integer;pCommand@1000000002 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{B08400BD-F9D1-4D02-B856-71D5DBA123E9}:'Microsoft ActiveX Data Objects 2.7 Library'._Command";pRecordset@1000000001 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000556-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Recordset";pConnection@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000550-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Connection");
BEGIN
END;
EVENT ADOConnection@1000000008::ExecuteComplete@5(RecordsAffected@1000000005 : Integer;pError@1000000004 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000500-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Error";adStatus@1000000003 : Integer;pCommand@1000000002 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{B08400BD-F9D1-4D02-B856-71D5DBA123E9}:'Microsoft ActiveX Data Objects 2.7 Library'._Command";pRecordset@1000000001 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000556-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Recordset";pConnection@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000550-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Connection");
BEGIN
END;
EVENT ADOConnection@1000000008::WillConnect@6(VAR ConnectionString@1000000005 : Text[1024];VAR UserID@1000000004 : Text[1024];VAR Password@1000000003 : Text[1024];VAR Options@1000000002 : Integer;adStatus@1000000001 : Integer;pConnection@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000550-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Connection");
BEGIN
END;
EVENT ADOConnection@1000000008::ConnectComplete@7(pError@1000000002 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000500-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Error";adStatus@1000000001 : Integer;pConnection@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000550-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Connection");
BEGIN
END;
EVENT ADOConnection@1000000008::Disconnect@8(adStatus@1000000001 : Integer;pConnection@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000550-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Connection");
BEGIN
END;
EVENT ADORecSet@1000000011::WillChangeField@9(cFields@1000000003 : Integer;Fields@1000000002 : Variant;adStatus@1000000001 : Integer;pRecordset@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000556-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Recordset");
BEGIN
END;
EVENT ADORecSet@1000000011::FieldChangeComplete@10(cFields@1000000004 : Integer;Fields@1000000003 : Variant;pError@1000000002 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000500-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Error";adStatus@1000000001 : Integer;pRecordset@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000556-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Recordset");
BEGIN
END;
EVENT ADORecSet@1000000011::WillChangeRecord@11(adReason@1000000003 : Integer;cRecords@1000000002 : Integer;adStatus@1000000001 : Integer;pRecordset@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000556-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Recordset");
BEGIN
END;
EVENT ADORecSet@1000000011::RecordChangeComplete@12(adReason@1000000004 : Integer;cRecords@1000000003 : Integer;pError@1000000002 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000500-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Error";adStatus@1000000001 : Integer;pRecordset@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000556-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Recordset");
BEGIN
END;
EVENT ADORecSet@1000000011::WillChangeRecordset@13(adReason@1000000002 : Integer;adStatus@1000000001 : Integer;pRecordset@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000556-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Recordset");
BEGIN
END;
EVENT ADORecSet@1000000011::RecordsetChangeComplete@14(adReason@1000000003 : Integer;pError@1000000002 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000500-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Error";adStatus@1000000001 : Integer;pRecordset@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000556-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Recordset");
BEGIN
END;
EVENT ADORecSet@1000000011::WillMove@15(adReason@1000000002 : Integer;adStatus@1000000001 : Integer;pRecordset@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000556-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Recordset");
BEGIN
END;
EVENT ADORecSet@1000000011::MoveComplete@16(adReason@1000000003 : Integer;pError@1000000002 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000500-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Error";adStatus@1000000001 : Integer;pRecordset@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000556-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Recordset");
BEGIN
END;
EVENT ADORecSet@1000000011::EndOfRecordset@17(VAR fMoreData@1000000002 : Boolean;adStatus@1000000001 : Integer;pRecordset@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000556-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Recordset");
BEGIN
END;
EVENT ADORecSet@1000000011::FetchProgress@18(Progress@1000000003 : Integer;MaxProgress@1000000002 : Integer;adStatus@1000000001 : Integer;pRecordset@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000556-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Recordset");
BEGIN
END;
EVENT ADORecSet@1000000011::FetchComplete@19(pError@1000000002 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000500-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'.Error";adStatus@1000000001 : Integer;pRecordset@1000000000 : Automation "{EF53050B-882E-4776-B643-EDA472E8E3F2} 2.7:{00000556-0000-0010-8000-00AA006D2EA4}:'Microsoft ActiveX Data Objects 2.7 Library'._Recordset");
BEGIN
END;
BEGIN
{
*********************************************************
*** STRYK System Improvement ***
*** Performance Optimization & Troubleshooting ***
*** (c) 2007, STRYK System Improvement, Jörg Stryk ***
*** Contact: www.stryk.info ***
*********************************************************
}
END.
}
}
Globals:
Statement; Text 1000
ExecADO; Codeunit 90100
---
Statement := 'TRUNCATE TABLE [dbo].[Cronus$Change Log Entry]';
ExecADO.ExecuteStatement(Statement);
YIELD;
7. April 2009 10:06
12. August 2016 16:51