+ TStringBufferRemotable = reading a node's raw buffer

+ Better Delphi support : client & server( new )
    - SOAP, XMLRPC and BINARY formats

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@212 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2007-07-12 14:46:45 +00:00
parent d5bf30839b
commit 65f4a3dffd
84 changed files with 10759 additions and 7663 deletions

View File

@ -0,0 +1,172 @@
{
This unit has been produced by ws_helper.
Input unit name : "SDMTabularService".
This unit name : "SDMTabularService".
Date : "11/07/2007 23:11:05".
}
unit SDMTabularService;
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
interface
uses SysUtils, Classes, TypInfo, base_service_intf, service_intf;
const
sNAME_SPACE = 'http://SDMDataAccess.nrcs.usda.gov/Tabular/SDMTabularService.asmx';
sUNIT_NAME = 'SDMTabularService';
type
schema_Type = class(TStringBufferRemotable) end;
//diffgram_Type = class(TStringBufferRemotable);
RunQueryType = class;
RunQueryResponse_RunQueryResult_Type = class;
RunQueryResponse = class;
RunQueryType = class(TBaseComplexRemotable)
private
FQuery : string;
private
function HasQuery() : Boolean;
published
property Query : string read FQuery write FQuery stored HasQuery;
end;
{ RunQueryResponse_RunQueryResult_Type }
RunQueryResponse_RunQueryResult_Type = class(TBaseComplexRemotable)
private
Fdiffgram : schema_Type;
Fschema : schema_Type;
function Hasdiffgram : boolean;
public
constructor Create();override;
Destructor Destroy();override;
published
property schema : schema_Type read Fschema write Fschema;
property diffgram : schema_Type read Fdiffgram write Fdiffgram stored Hasdiffgram;
end;
RunQueryResponse = class(TBaseComplexRemotable)
private
FRunQueryResult : RunQueryResponse_RunQueryResult_Type;
private
function HasRunQueryResult() : Boolean;
public
constructor Create();override;
destructor Destroy();override;
published
property RunQueryResult : RunQueryResponse_RunQueryResult_Type read FRunQueryResult write FRunQueryResult stored HasRunQueryResult;
end;
SDMTabularServiceSoap = interface(IInvokable)
['{6F9CD0B5-85E3-43A5-9265-5F6AD11B3742}']
function RunQuery(
Const RunQueryParam : RunQueryType
):RunQueryResponse;
end;
procedure Register_SDMTabularService_ServiceMetadata();
Implementation
uses metadata_repository;
{ RunQueryType }
function RunQueryType.HasQuery() : Boolean;
begin
Result := True;
end;
{ RunQueryResponse }
destructor RunQueryResponse.Destroy();
begin
if Assigned(FRunQueryResult) then
FreeAndNil(FRunQueryResult);
inherited Destroy();
end;
function RunQueryResponse.HasRunQueryResult() : Boolean;
begin
Result := True;
end;
constructor RunQueryResponse.Create();
begin
inherited Create();
FRunQueryResult := RunQueryResponse_RunQueryResult_Type.Create();
end;
procedure Register_SDMTabularService_ServiceMetadata();
var
mm : IModuleMetadataMngr;
begin
mm := GetModuleMetadataMngr();
mm.SetRepositoryNameSpace(sUNIT_NAME, sNAME_SPACE);
mm.SetServiceCustomData(
sUNIT_NAME,
'SDMTabularServiceSoap',
'TRANSPORT_Address',
'http://sdmdataaccess.nrcs.usda.gov/Tabular/SDMTabularService.asmx'
);
mm.SetServiceCustomData(
sUNIT_NAME,
'SDMTabularServiceSoap',
'FORMAT_Style',
'document'
);
mm.SetOperationCustomData(
sUNIT_NAME,
'SDMTabularServiceSoap',
'RunQuery',
'TRANSPORT_soapAction',
'http://SDMDataAccess.nrcs.usda.gov/Tabular/SDMTabularService.asmx/RunQuery'
);
mm.SetOperationCustomData(
sUNIT_NAME,
'SDMTabularServiceSoap',
'RunQuery',
'FORMAT_Input_EncodingStyle',
'literal'
);
mm.SetOperationCustomData(
sUNIT_NAME,
'SDMTabularServiceSoap',
'RunQuery',
'FORMAT_OutputEncodingStyle',
'literal'
);
end;
{ RunQueryResponse_RunQueryResult_Type }
function RunQueryResponse_RunQueryResult_Type.Hasdiffgram : boolean;
begin
Result := ( diffgram <> nil );
end;
constructor RunQueryResponse_RunQueryResult_Type.Create();
begin
inherited Create();
Fschema := schema_Type.Create();
Fdiffgram := schema_Type.Create();
end;
destructor RunQueryResponse_RunQueryResult_Type.Destroy();
begin
FreeAndNil(Fdiffgram);
FreeAndNil(Fschema);
inherited Destroy();
end;
initialization
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RunQueryType),'RunQuery');
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RunQueryResponse_RunQueryResult_Type),'RunQueryResponse_RunQueryResult_Type').RegisterExternalPropertyName('schema','xs:schema');
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RunQueryResponse_RunQueryResult_Type),'RunQueryResponse_RunQueryResult_Type').RegisterExternalPropertyName('diffgram','diffgr:diffgram');
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RunQueryResponse),'RunQueryResponse');
End.

View File

@ -0,0 +1,6 @@
GetWSTResourceManager().AddResource('SDMTABULARSERVICE',
#0#0#0#20'WST_METADATA_0.2.2.0'#0#0#0#17'SDMTabularService'#1#0#0#0#21'SDMTa'
+'bularServiceSoap'#1#0#0#0#8'RunQuery'#2#0#0#0#8'RunQuery'#0#0#0#8'RunQuery'#0
+#0#0#0#0#0#0#1#0#0#0#16'RunQueryResponse'#0#0#0#16'RunQueryResponse'#0#0#0#0
+#0#0#0#3''
);

View File

@ -0,0 +1,75 @@
{
This unit has been produced by ws_helper.
Input unit name : "SDMTabularService".
This unit name : "SDMTabularService_proxy".
Date : "11/07/2007 23:11:05".
}
Unit SDMTabularService_proxy;
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
Interface
Uses SysUtils, Classes, TypInfo, base_service_intf, service_intf, SDMTabularService;
Type
TSDMTabularServiceSoap_Proxy=class(TBaseProxy,SDMTabularServiceSoap)
Protected
class function GetServiceType() : PTypeInfo;override;
function RunQuery(
Const RunQueryParam : RunQueryType
):RunQueryResponse;
End;
Function wst_CreateInstance_SDMTabularServiceSoap(const AFormat : string = 'SOAP:'; const ATransport : string = 'HTTP:'):SDMTabularServiceSoap;
Implementation
uses wst_resources_imp, metadata_repository;
Function wst_CreateInstance_SDMTabularServiceSoap(const AFormat : string; const ATransport : string):SDMTabularServiceSoap;
Begin
Result := TSDMTabularServiceSoap_Proxy.Create('SDMTabularServiceSoap',AFormat+GetServiceDefaultFormatProperties(TypeInfo(SDMTabularServiceSoap)),ATransport + 'address=' + GetServiceDefaultAddress(TypeInfo(SDMTabularServiceSoap)));
End;
{ TSDMTabularServiceSoap_Proxy implementation }
class function TSDMTabularServiceSoap_Proxy.GetServiceType() : PTypeInfo;
begin
result := TypeInfo(SDMTabularServiceSoap);
end;
function TSDMTabularServiceSoap_Proxy.RunQuery(
Const RunQueryParam : RunQueryType
):RunQueryResponse;
Var
locSerializer : IFormatterClient;
strPrmName : string;
Begin
locSerializer := GetSerializer();
Try
locSerializer.BeginCall('RunQuery', GetTarget(),(Self as ICallContext));
locSerializer.Put('RunQuery', TypeInfo(RunQueryType), RunQueryParam);
locSerializer.EndCall();
MakeCall();
locSerializer.BeginCallRead((Self as ICallContext));
TObject(Result) := Nil;
strPrmName := 'RunQueryResponse';
locSerializer.Get(TypeInfo(RunQueryResponse), strPrmName, Result);
Finally
locSerializer.Clear();
End;
End;
initialization
{$i SDMTabularService.wst}
{$IF DECLARED(Register_SDMTabularService_ServiceMetadata)}
Register_SDMTabularService_ServiceMetadata();
{$IFEND}
End.

View File

@ -0,0 +1,43 @@
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-N"obj"
-LE"c:\program files\borland\delphi7\Projects\Bpl"
-LN"c:\program files\borland\delphi7\Projects\Bpl"
-U"..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\"
-O"..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\"
-I"..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\"
-R"..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\"
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

View File

@ -0,0 +1,162 @@
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=obj
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;FIBDBMidas7;Jcl;JclVcl;JvCoreD7R;JvSystemD7R;JvStdCtrlsD7R;JvAppFrmD7R;JvBandsD7R;JvDBD7R;JvDlgsD7R;JvBDED7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;JvGlobusD7R;JvHMID7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvRuntimeDesignD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;dxForumLibD7;cxLibraryVCLD7;cxPageControlVCLD7;dxBarD7;dxComnD7;dxBarDBNavD7;dxBarExtItemsD7;dxBarExtDBItemsD7;dxsbD7;dxmdsD7;dxdbtrD7;dxtrmdD7;dxorgcD7;dxdborD7;dxEdtrD7;EQTLD7;ECQDBCD7;EQDBTLD7;EQGridD7;dxGrEdD7;dxExELD7;dxELibD7;cxEditorsVCLD7;cxGridVCLD7;dxThemeD7;cxDataD7;cxGridUtilsVCLD7;dxPSCoreD7;dxPsPrVwAdvD7;dxPSLnksD7;dxPSTeeChartD7;dxPSDBTeeChartD7;dxPSdxDBTVLnkD7;dxPSdxOCLnkD7;dxPSdxDBOCLnkD7;dxPScxGridLnkD7;dxPSTLLnkD7;qrpt
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=C:\Program Files\Borland\Delphi7\Bin\
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1036
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[Excluded Packages]
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxDBTLLnkD7.bpl=ExpressPrinting System ReportLink for ExpressQuantumDBTreeList by Developer Express Inc.
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxDBGrLnkD7.bpl=ExpressPrinting System ReportLink for ExpressQuantumGrid by Developer Express Inc.
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxInsLnkD7.bpl=ExpressPrinting System ReportLink for ExpressInspector by Developer Express Inc.
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxOILnkD7.bpl=ExpressPrinting System ReportLink for ExpressRTTIInspector by Developer Express Inc.
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxMVLnkD7.bpl=ExpressPrinting System ReportLink for ExpressMasterView by Developer Express Inc.
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxFCLnkD7.bpl=ExpressPrinting System ReportLinks for ExpressFlowChart by Developer Express Inc.
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPScxSSLnkD7.bpl=ExpressPrinting System ReportLink for ExpressSpreadSheet by Developer Express Inc.
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=10
Item0=..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\
Item1=..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\
Item2=..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse
Item3=..\..\..\;..\..\..\ws_helper\
Item4=$(DELPHI)\Lib\Debug;C:\PROGRA~1\Borland\Delphi7\MyTools\JVCL\3.20\jcl\lib\d7\debug;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\..\
Item5=..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\..\
Item6=..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse
Item7=..\..\;..\..\..\
Item8=..\..\
Item9=..\
[HistoryLists\hlUnitOutputDirectory]
Count=1
Item0=obj

View File

@ -0,0 +1,84 @@
program test_prj;
{$APPTYPE CONSOLE}
uses
SysUtils, ActiveX,
synapse_http_protocol,
soap_formatter,
SDMTabularService,
SDMTabularService_proxy;
var
SDMSoap : SDMTabularServiceSoap;
QueryBuffer : RunQueryType;
QryResult : RunQueryResponse;
XmlFileVar : TextFile;
begin
CoInitialize(nil);
try
SYNAPSE_RegisterHTTP_Transport();
// if Assigned(InitProc) then
// TProcedure(InitProc);
QueryBuffer := RunQueryType.Create();
try
SDMSoap := wst_CreateInstance_SDMTabularServiceSoap();
if not Assigned(SDMSoap) then
begin
WriteLn('Service not assigned');
Exit;
end;
QueryBuffer.Query :=
'SELECT ' +
'saversion, saverest, ' +
'l.areasymbol, l.areaname, l.lkey, ' +
'mu.musym, mu.muname, museq, mu.mukey, ' +
'textcat, textsubcat, ' +
'flodfreqdcd, wtdepannmin, ' +
'comppct_r, compname, localphase, slope_r, slope_l, slope_h, hydgrp, tfact, runoff, drainagecl, wei, majcompflag, slopelenusle_r, c.cokey, ' +
'reskind, resdept_r, ' +
'hzdept_r, hzdepb_r, om_l, om_h, kffact, kwfact, ch.chkey, ' +
'texture ' +
'FROM sacatalog sac ' +
'INNER JOIN legend l ON l.areasymbol = sac.areasymbol AND l.areasymbol = ''IN001'' ' +
'INNER JOIN mapunit mu ON mu.lkey = l.lkey ' +
'LEFT OUTER JOIN mutext mutx ON mutx.mukey = mu.mukey AND mutx.textcat = ''innitrate'' ' +
'LEFT OUTER JOIN muaggatt muag ON muag.mukey = mu.mukey ' +
'LEFT OUTER JOIN component c ON c.mukey = mu.mukey AND c.majcompflag = ''Yes'' ' +
'LEFT OUTER JOIN corestrictions core on core.cokey = c.cokey AND core.reskind IN (''Densic bedrock'', ''Lithic bedrock'', ''Paralithic bedrock'') ' +
'LEFT OUTER JOIN chorizon ch ON ch.cokey = c.cokey AND ch.hzdept_r = ''0'' ' +
'LEFT OUTER JOIN chtexturegrp chtg ON chtg.chkey = ch.chkey ' +
'ORDER BY l.areasymbol, museq, comppct_r DESC, compname, hydgrp, texture';
// WriteLn(QueryStr);
try
QryResult := SDMSoap.RunQuery(QueryBuffer);
if not Assigned(QryResult) then
WriteLn('QryResult not assigned');
except on E:Exception do
begin
WriteLn(E.Message);
Exit;
end;
end;
// WriteLn(QryResult.s_schema);
WriteLn(Copy(QryResult.RunQueryResult.schema.Data, 1, 500));
AssignFile(XmlFileVar, 'junk.xml');
Rewrite(XmlFileVar);
WriteLn(XmlFileVar, QryResult.RunQueryResult.diffgram.Data);
CloseFile(XmlFileVar);
finally
QueryBuffer.Free();
end;
finally
CoUninitialize();
end;
end.

View File

@ -0,0 +1 @@
..\..\ws_helper\ws_helper.exe -uA -p -o. SDMTabularService.wsdl >parsing.res.txt

View File

@ -0,0 +1,207 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="\"/>
<Version Value="5"/>
<General>
<Flags>
<MainUnitHasUsesSectionForAllUnits Value="False"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
</Flags>
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="0"/>
</General>
<VersionInfo>
<ProjectVersion Value=""/>
<Language Value=""/>
<CharSet Value=""/>
</VersionInfo>
<PublishOptions>
<Version Value="2"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<Units Count="17">
<Unit0>
<Filename Value="test_prj.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="test_prj"/>
<CursorPos X="1" Y="69"/>
<TopLine Value="52"/>
<EditorIndex Value="0"/>
<UsageCount Value="25"/>
<Loaded Value="True"/>
</Unit0>
<Unit1>
<Filename Value="SDMTabularService.pas"/>
<UnitName Value="SDMTabularService"/>
<CursorPos X="3" Y="154"/>
<TopLine Value="145"/>
<EditorIndex Value="10"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit1>
<Unit2>
<Filename Value="SDMTabularService_proxy.pas"/>
<UnitName Value="SDMTabularService_proxy"/>
<CursorPos X="70" Y="12"/>
<TopLine Value="1"/>
<EditorIndex Value="8"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit2>
<Unit3>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/>
<CursorPos X="4" Y="345"/>
<TopLine Value="345"/>
<UsageCount Value="10"/>
</Unit3>
<Unit4>
<Filename Value="..\..\binary_streamer.pas"/>
<UnitName Value="binary_streamer"/>
<CursorPos X="95" Y="107"/>
<TopLine Value="6"/>
<EditorIndex Value="6"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit4>
<Unit5>
<Filename Value="..\..\wst_fpc_xml.pas"/>
<UnitName Value="wst_fpc_xml"/>
<CursorPos X="46" Y="10"/>
<TopLine Value="5"/>
<EditorIndex Value="4"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit5>
<Unit6>
<Filename Value="..\..\wst_global.inc"/>
<CursorPos X="11" Y="4"/>
<TopLine Value="1"/>
<EditorIndex Value="7"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit6>
<Unit7>
<Filename Value="..\..\service_intf.pas"/>
<UnitName Value="service_intf"/>
<CursorPos X="28" Y="212"/>
<TopLine Value="201"/>
<EditorIndex Value="9"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit7>
<Unit8>
<Filename Value="..\..\soap_formatter.pas"/>
<UnitName Value="soap_formatter"/>
<CursorPos X="1" Y="94"/>
<TopLine Value="6"/>
<EditorIndex Value="2"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit8>
<Unit9>
<Filename Value="..\..\synapse_http_protocol.pas"/>
<UnitName Value="synapse_http_protocol"/>
<CursorPos X="30" Y="176"/>
<TopLine Value="142"/>
<EditorIndex Value="1"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit9>
<Unit10>
<Filename Value="..\..\base_soap_formatter.pas"/>
<UnitName Value="base_soap_formatter"/>
<CursorPos X="28" Y="392"/>
<TopLine Value="387"/>
<EditorIndex Value="3"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit10>
<Unit11>
<Filename Value="..\..\base_service_intf.pas"/>
<UnitName Value="base_service_intf"/>
<CursorPos X="51" Y="4446"/>
<TopLine Value="4425"/>
<EditorIndex Value="11"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit11>
<Unit12>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\extra\univint\Dialogs.pas"/>
<UnitName Value="Dialogs"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1055"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<Filename Value="..\..\wst.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="5"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit13>
<Unit14>
<Filename Value="..\..\wst_delphi.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit14>
<Unit15>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\classesh.inc"/>
<CursorPos X="14" Y="692"/>
<TopLine Value="678"/>
<UsageCount Value="10"/>
</Unit15>
<Unit16>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<UnitName Value="DOM"/>
<CursorPos X="10" Y="971"/>
<TopLine Value="957"/>
<UsageCount Value="10"/>
</Unit16>
</Units>
<JumpHistory Count="0" HistoryIndex="-1"/>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<PathDelim Value="\"/>
<SearchPaths>
<OtherUnitFiles Value="..\..\;$(LazarusDir)\others_package\synapse\"/>
<UnitOutputDirectory Value="obj"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
<Debugging>
<BreakPoints Count="1">
<Item1>
<Source Value="..\..\ws_helper\wsdl2pas_imp.pas"/>
<Line Value="1346"/>
</Item1>
</BreakPoints>
<Exceptions Count="2">
<Item1>
<Name Value="ECodetoolError"/>
</Item1>
<Item2>
<Name Value="EFOpenError"/>
</Item2>
</Exceptions>
</Debugging>
</CONFIG>

View File

@ -0,0 +1,79 @@
program test_prj;
{$mode objfpc}{$H+}
uses
SysUtils,
synapse_http_protocol,
soap_formatter,
SDMTabularService, SDMTabularService_proxy;
var
SDMSoap : SDMTabularServiceSoap;
QueryBuffer : RunQueryType;
QryResult : RunQueryResponse;
XmlFileVar : TextFile;
begin
SYNAPSE_RegisterHTTP_Transport();
// if Assigned(InitProc) then
// TProcedure(InitProc);
QueryBuffer := RunQueryType.Create();
try
SDMSoap := wst_CreateInstance_SDMTabularServiceSoap();
if not Assigned(SDMSoap) then
begin
WriteLn('Service not assigned');
Exit;
end;
QueryBuffer.Query :=
'SELECT ' +
'saversion, saverest, ' +
'l.areasymbol, l.areaname, l.lkey, ' +
'mu.musym, mu.muname, museq, mu.mukey, ' +
'textcat, textsubcat, ' +
'flodfreqdcd, wtdepannmin, ' +
'comppct_r, compname, localphase, slope_r, slope_l, slope_h, hydgrp, tfact, runoff, drainagecl, wei, majcompflag, slopelenusle_r, c.cokey, ' +
'reskind, resdept_r, ' +
'hzdept_r, hzdepb_r, om_l, om_h, kffact, kwfact, ch.chkey, ' +
'texture ' +
'FROM sacatalog sac ' +
'INNER JOIN legend l ON l.areasymbol = sac.areasymbol AND l.areasymbol = ''IN001'' ' +
'INNER JOIN mapunit mu ON mu.lkey = l.lkey ' +
'LEFT OUTER JOIN mutext mutx ON mutx.mukey = mu.mukey AND mutx.textcat = ''innitrate'' ' +
'LEFT OUTER JOIN muaggatt muag ON muag.mukey = mu.mukey ' +
'LEFT OUTER JOIN component c ON c.mukey = mu.mukey AND c.majcompflag = ''Yes'' ' +
'LEFT OUTER JOIN corestrictions core on core.cokey = c.cokey AND core.reskind IN (''Densic bedrock'', ''Lithic bedrock'', ''Paralithic bedrock'') ' +
'LEFT OUTER JOIN chorizon ch ON ch.cokey = c.cokey AND ch.hzdept_r = ''0'' ' +
'LEFT OUTER JOIN chtexturegrp chtg ON chtg.chkey = ch.chkey ' +
'ORDER BY l.areasymbol, museq, comppct_r DESC, compname, hydgrp, texture';
// WriteLn(QueryStr);
try
QryResult := SDMSoap.RunQuery(QueryBuffer);
if not Assigned(QryResult) then
WriteLn('QryResult not assigned');
except on E:Exception do
begin
WriteLn(E.Message);
Exit;
end;
end;
// WriteLn(QryResult.s_schema);
WriteLn(Copy(QryResult.RunQueryResult.schema.Data, 1, 500));
AssignFile(XmlFileVar, 'junk.xml');
Rewrite(XmlFileVar);
WriteLn(XmlFileVar, QryResult.RunQueryResult.diffgram.Data);
CloseFile(XmlFileVar);
finally
QueryBuffer.Free();
end;
end.

View File

@ -10,11 +10,9 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
}
{$INCLUDE wst_global.inc}
unit testformatter_unit;
{$mode objfpc}{$H+}
interface
uses
@ -1654,7 +1652,7 @@ begin
f.Put('a',TypeInfo(TArrayOfStringRemotable),a);
f.EndScope();
s := TMemoryStream.Create();
f.SaveToStream(s);
f.SaveToStream(s); s.SaveToFile(ClassName + '.Test_StringArray.xml');
FreeAndNil(a);
a := TArrayOfStringRemotable.Create();
a.SetLength(0);

View File

@ -7,7 +7,7 @@
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="7"/>
<ActiveEditorIndexAtStart Value="13"/>
</General>
<PublishOptions>
<Version Value="2"/>
@ -27,12 +27,12 @@
<PackageName Value="FPCUnitTestRunner"/>
</Item1>
</RequiredPackages>
<Units Count="46">
<Units Count="57">
<Unit0>
<Filename Value="wst_test_suite.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="wst_test_suite"/>
<CursorPos X="33" Y="11"/>
<CursorPos X="8" Y="6"/>
<TopLine Value="1"/>
<UsageCount Value="200"/>
</Unit0>
@ -40,9 +40,9 @@
<Filename Value="testformatter_unit.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="testformatter_unit"/>
<CursorPos X="31" Y="297"/>
<TopLine Value="290"/>
<EditorIndex Value="7"/>
<CursorPos X="22" Y="13"/>
<TopLine Value="1"/>
<EditorIndex Value="12"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit1>
@ -58,16 +58,18 @@
<Filename Value="..\..\soap_formatter.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="soap_formatter"/>
<CursorPos X="37" Y="29"/>
<TopLine Value="23"/>
<CursorPos X="26" Y="13"/>
<TopLine Value="1"/>
<EditorIndex Value="6"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit3>
<Unit4>
<Filename Value="..\..\base_binary_formatter.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="base_binary_formatter"/>
<CursorPos X="45" Y="93"/>
<TopLine Value="138"/>
<CursorPos X="3" Y="11"/>
<TopLine Value="1"/>
<EditorIndex Value="1"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
@ -76,13 +78,13 @@
<Filename Value="..\..\base_service_intf.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="base_service_intf"/>
<CursorPos X="3" Y="122"/>
<TopLine Value="186"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="0"/>
<UsageCount Value="200"/>
<Bookmarks Count="2">
<Item0 X="33" Y="1126" ID="0"/>
<Item1 X="5" Y="1180" ID="1"/>
<Item0 X="33" Y="1127" ID="0"/>
<Item1 X="5" Y="1181" ID="1"/>
</Bookmarks>
<Loaded Value="True"/>
</Unit5>
@ -90,8 +92,8 @@
<Filename Value="..\..\base_soap_formatter.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="base_soap_formatter"/>
<CursorPos X="3" Y="1645"/>
<TopLine Value="1641"/>
<CursorPos X="26" Y="13"/>
<TopLine Value="1"/>
<EditorIndex Value="2"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
@ -108,20 +110,22 @@
<Filename Value="..\..\binary_streamer.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="binary_streamer"/>
<CursorPos X="1" Y="488"/>
<TopLine Value="476"/>
<CursorPos X="26" Y="13"/>
<TopLine Value="1"/>
<EditorIndex Value="8"/>
<UsageCount Value="200"/>
<Bookmarks Count="1">
<Item0 X="38" Y="488" ID="2"/>
<Item0 X="38" Y="489" ID="2"/>
</Bookmarks>
<Loaded Value="True"/>
</Unit8>
<Unit9>
<Filename Value="..\..\server_binary_formatter.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="server_binary_formatter"/>
<CursorPos X="22" Y="100"/>
<TopLine Value="86"/>
<EditorIndex Value="6"/>
<CursorPos X="26" Y="13"/>
<TopLine Value="1"/>
<EditorIndex Value="11"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit9>
@ -139,17 +143,15 @@
<UnitName Value="testmetadata_unit"/>
<CursorPos X="44" Y="180"/>
<TopLine Value="153"/>
<EditorIndex Value="4"/>
<UsageCount Value="202"/>
<Loaded Value="True"/>
</Unit11>
<Unit12>
<Filename Value="..\..\ws_helper\metadata_generator.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="metadata_generator"/>
<CursorPos X="17" Y="85"/>
<TopLine Value="76"/>
<EditorIndex Value="5"/>
<CursorPos X="1" Y="19"/>
<TopLine Value="1"/>
<EditorIndex Value="10"/>
<UsageCount Value="202"/>
<Loaded Value="True"/>
</Unit12>
@ -169,9 +171,11 @@
<Filename Value="..\..\metadata_wsdl.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="metadata_wsdl"/>
<CursorPos X="71" Y="293"/>
<TopLine Value="280"/>
<CursorPos X="44" Y="21"/>
<TopLine Value="209"/>
<EditorIndex Value="13"/>
<UsageCount Value="206"/>
<Loaded Value="True"/>
</Unit14>
<Unit15>
<Filename Value="D:\Lazarus\fpcsrc\fcl\xml\dom.pp"/>
@ -281,7 +285,7 @@
<UnitName Value="test_parserdef"/>
<CursorPos X="93" Y="76"/>
<TopLine Value="11"/>
<UsageCount Value="130"/>
<UsageCount Value="144"/>
</Unit30>
<Unit31>
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/>
@ -291,9 +295,11 @@
</Unit31>
<Unit32>
<Filename Value="..\..\wst.inc"/>
<CursorPos X="21" Y="7"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="9"/>
<EditorIndex Value="5"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit32>
<Unit33>
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\objpas.pp"/>
@ -319,10 +325,10 @@
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="base_xmlrpc_formatter"/>
<CursorPos X="48" Y="406"/>
<TopLine Value="386"/>
<EditorIndex Value="3"/>
<UsageCount Value="68"/>
<CursorPos X="26" Y="13"/>
<TopLine Value="1"/>
<EditorIndex Value="7"/>
<UsageCount Value="82"/>
<Loaded Value="True"/>
</Unit36>
<Unit37>
@ -386,109 +392,88 @@
<TopLine Value="95"/>
<UsageCount Value="10"/>
</Unit45>
<Unit46>
<Filename Value="..\..\semaphore.pas"/>
<UnitName Value="semaphore"/>
<CursorPos X="44" Y="6"/>
<TopLine Value="1"/>
<UsageCount Value="12"/>
</Unit46>
<Unit47>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<UnitName Value="DOM"/>
<CursorPos X="19" Y="328"/>
<TopLine Value="313"/>
<UsageCount Value="13"/>
</Unit47>
<Unit48>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\win32\system.pp"/>
<UnitName Value="System"/>
<CursorPos X="22" Y="33"/>
<TopLine Value="18"/>
<UsageCount Value="11"/>
</Unit48>
<Unit49>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-base\src\inc\contnrs.pp"/>
<UnitName Value="contnrs"/>
<CursorPos X="3" Y="964"/>
<TopLine Value="962"/>
<UsageCount Value="10"/>
</Unit49>
<Unit50>
<Filename Value="..\..\wst_delphi.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="4"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit50>
<Unit51>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\strutils.pp"/>
<UnitName Value="strutils"/>
<CursorPos X="10" Y="29"/>
<TopLine Value="14"/>
<UsageCount Value="10"/>
</Unit51>
<Unit52>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
<CursorPos X="20" Y="168"/>
<TopLine Value="166"/>
<UsageCount Value="10"/>
</Unit52>
<Unit53>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpas.inc"/>
<CursorPos X="11" Y="442"/>
<TopLine Value="556"/>
<UsageCount Value="10"/>
</Unit53>
<Unit54>
<Filename Value="..\..\wst_fpc_xml.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="wst_fpc_xml"/>
<CursorPos X="8" Y="38"/>
<TopLine Value="11"/>
<EditorIndex Value="3"/>
<UsageCount Value="28"/>
<Loaded Value="True"/>
</Unit54>
<Unit55>
<Filename Value="..\..\wst_global.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="9"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit55>
<Unit56>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-base\src\inc\custapp.pp"/>
<UnitName Value="CustApp"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit56>
</Units>
<JumpHistory Count="25" HistoryIndex="24">
<Position1>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="3097" Column="1" TopLine="3065"/>
</Position1>
<Position2>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="3133" Column="31" TopLine="3110"/>
</Position2>
<Position3>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="384" Column="38" TopLine="372"/>
</Position3>
<Position4>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="960" Column="31" TopLine="943"/>
</Position4>
<Position5>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="84" Column="28" TopLine="141"/>
</Position5>
<Position6>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="3133" Column="28" TopLine="3111"/>
</Position6>
<Position7>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="384" Column="36" TopLine="372"/>
</Position7>
<Position8>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="456" Column="16" TopLine="437"/>
</Position8>
<Position9>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="458" Column="11" TopLine="436"/>
</Position9>
<Position10>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position10>
<Position11>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="458" Column="38" TopLine="436"/>
</Position11>
<Position12>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="464" Column="38" TopLine="442"/>
</Position12>
<Position13>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="1312" Column="36" TopLine="1290"/>
</Position13>
<Position14>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="1364" Column="1" TopLine="1333"/>
</Position14>
<Position15>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position15>
<Position16>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="1647" Column="21" TopLine="1622"/>
</Position16>
<Position17>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="454" Column="1" TopLine="405"/>
</Position17>
<Position18>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="3107" Column="5" TopLine="3058"/>
</Position18>
<Position19>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="385" Column="42" TopLine="366"/>
</Position19>
<Position20>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="2446" Column="30" TopLine="2434"/>
</Position20>
<Position21>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position21>
<Position22>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="459" Column="5" TopLine="430"/>
</Position22>
<Position23>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="288" Column="36" TopLine="276"/>
</Position23>
<Position24>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="3139" Column="5" TopLine="3110"/>
</Position24>
<Position25>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="386" Column="42" TopLine="378"/>
</Position25>
</JumpHistory>
<JumpHistory Count="0" HistoryIndex="-1"/>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
@ -497,6 +482,7 @@
<Filename Value="wst_test_suite.exe"/>
</Target>
<SearchPaths>
<IncludeFiles Value="..\..\"/>
<OtherUnitFiles Value="..\..\;..\..\ws_helper\"/>
<UnitOutputDirectory Value="obj"/>
</SearchPaths>

View File

@ -9,7 +9,7 @@ uses
base_service_intf, base_soap_formatter, binary_formatter, binary_streamer,
server_binary_formatter, metadata_repository,
metadata_generator, parserdefs, server_service_intf, metadata_wsdl,
test_parserdef, base_xmlrpc_formatter;
test_parserdef, base_xmlrpc_formatter, wst_fpc_xml;
Const
ShortOpts = 'alh';