⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testaparam.pas

📁 delphi通过OCI访问ORACLE
💻 PAS
字号:
unit testAParam;

{$INCLUDE dOCI.inc}

interface

uses
 TestFrameWork, ADataSet, AOraSQL
 {$IFDEF D7} , Variants {$ENDIF};

type
 TTestAParam = class(TTestCase)
 private
    AParam:TAOraParam;
 protected
    procedure SetUp; override;
    procedure TearDown; override;
 published
   procedure testAParam1;
   procedure testAParamString;
   procedure testAParamDouble;
   procedure testAParamWord;
   procedure testAParamInt64;
   procedure testAParamDateTime;
{$IFDEF D6_OR_HIGHER}
   procedure testAParamVarInt64;
   procedure testAParamVarDateTime;
{$ENDIF}   
   procedure testAParamVarString;
 end;


implementation

procedure TTestAParam.SetUp;
begin

end;

procedure TTestAParam.TearDown;
begin

end;

procedure TTestAParam.testAParam1;
begin
// ??? seems we must not allow to create parameters with empty name
  AParam := TAOraParam.Create(nil, '', ftoSmallInt, ptoInput);
  Check(AParam.IsNull);
  CheckEquals('', AParam.Name);
  Check(ftoSmallInt = AParam.FieldType);
  Check(ptoInput = AParam.ParamType);

  AParam.AsSmallInt := 32767;

  Check(not AParam.IsNull);
  CheckEquals(32767, AParam.AsSmallInt);

  AParam.Clear;
  Check(AParam.IsNull);

  AParam.Free;
end;

procedure TTestAParam.testAParamString;
begin
  AParam := TAOraParam.Create(nil, 'param1', ftoString, ptoOutput);
  Check(AParam.IsNull);
  CheckEquals('param1', AParam.Name);
  Check(ftoString = AParam.FieldType);
  Check(ptoOutput = AParam.ParamType);

  AParam.AsString := 'aaa';

  Check(not AParam.IsNull);
  CheckEquals('aaa', AParam.AsString);

  AParam.Clear;
  Check(AParam.IsNull);

  AParam.Free;
end;

procedure TTestAParam.testAParamDouble;
begin
  AParam := TAOraParam.Create(nil, 'p', ftoDouble, ptoInputOutput);
  Check(AParam.IsNull);
  CheckEquals('p', AParam.Name);
  Check(ftoDouble = AParam.FieldType);
  Check(ptoInputOutput = AParam.ParamType);

  AParam.AsDouble := 5;
  Check(not AParam.IsNull);
  CheckEquals(5.0, AParam.AsDouble,0);

  AParam.Clear;
  Check(AParam.IsNull);

  AParam.Free;
end;

procedure TTestAParam.testAParamWord;
var tmp:integer;
begin
  AParam := TAOraParam.Create(nil, 'param1AA', ftoWord, ptoInput);
  Check(AParam.IsNull);
  CheckEquals('param1AA', AParam.Name);
  Check(ftoWord = AParam.FieldType);
  Check(ptoInput = AParam.ParamType);

  tmp := 65535;
  AParam.AsWord := tmp;

  Check(not AParam.IsNull);
  CheckEquals(tmp and $FFFF, AParam.AsWord);

  AParam.Clear;
  Check(AParam.IsNull);

  AParam.Free;
end;

procedure TTestAParam.testAParamInt64;
//var tmp:integer;
begin
  AParam := TAOraParam.Create(nil, 'paramInt64', ftoInt64, ptoInput);
  Check(AParam.IsNull);
  CheckEquals('paramInt64', AParam.Name);
  Check(ftoInt64 = AParam.FieldType);
  Check(ptoInput = AParam.ParamType);

  AParam.AsInt64 := 1234567890123456789;

  Check(not AParam.IsNull);
  Check(1234567890123456789 = AParam.AsInt64);

  AParam.Clear;
  Check(AParam.IsNull);

  AParam.Free;
end;

procedure TTestAParam.testAParamDateTime;
//var tmp:int64;
begin
  AParam := TAOraParam.Create(nil, 'paramDateTime', ftoDateTime, ptoInputOutput);
  Check(AParam.IsNull);
  CheckEquals('paramDateTime', AParam.Name);
  Check(ftoDateTime = AParam.FieldType);
  Check(ptoInputOutput = AParam.ParamType);

  AParam.AsDateTime := 1122334455;

  Check(not AParam.IsNull);
  Check(1122334000 = AParam.AsDateTime);

  AParam.Clear;
  Check(AParam.IsNull);

  AParam.Free;
end;

{$IFDEF D6_OR_HIGHER}
procedure TTestAParam.testAParamVarDateTime;
begin
  AParam := TAOraParam.Create(nil, 'paramDateTime', ftoDateTime, ptoOutput);
  Check(AParam.Value = Null);
  CheckEquals('paramDateTime', AParam.Name);
  Check(ftoDateTime = AParam.FieldType);
  Check(ptoOutput = AParam.ParamType);

  AParam.Value := 1122334455;

  Check(AParam.Value <> Null);
  Check(1122334000 = AParam.Value);

  AParam.Clear;
  Check(AParam.Value = Null);

  AParam.Free;
end;

procedure TTestAParam.testAParamVarInt64;
begin
  AParam := TAOraParam.Create(nil, 'int64', ftoInt64, ptoOutput);
  Check(AParam.Value = Null);
  CheckEquals('int64', AParam.Name);
  Check(ftoInt64 = AParam.FieldType);
  Check(ptoOutput = AParam.ParamType);

  AParam.Value := 1122334455667788990;

  Check(AParam.Value <> Null);
  Check(1122334455667788990 = AParam.Value);

  AParam.Clear;
  Check(AParam.Value = Null);

  AParam.Free;
end;
{$ENDIF}

procedure TTestAParam.testAParamVarString;
begin
  AParam := TAOraParam.Create(nil, 'String', ftoString, ptoOutput);
  Check(AParam.Value = Null);
  CheckEquals('String', AParam.Name);
  Check(ftoString = AParam.FieldType);
  Check(ptoOutput = AParam.ParamType);

  AParam.Value := '1122334455667788990aaaa';

  Check(AParam.Value <> Null);
  Check('1122334455667788990aaaa' = AParam.Value);

  AParam.Clear;
  Check(AParam.Value = Null);

  AParam.Free;
end;

initialization
 TestFramework.RegisterTest(TTestAParam.Suite);
end.


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -