xsharp.eu • VO Select Problem
Page 1 of 2

VO Select Problem

Posted: Fri Jul 20, 2018 7:39 am
by Ивайло Кантурски
Hello Guys,

could you please help me with the code bellow. I try to build our VO projects but the VO SELECT command is not recognized by the compiler. Thank you.

Code: Select all

                IF SELECT(#T_FORGETCN) == 0
			IF gwMEM_RDD == 3 .OR. gwMEM_RDD == 5 
				use (gcInitialCatalog + "::T_FORGETCN") new via ViaRdd("")
			ELSEIF gwMEM_RDD == 4
				use (gcUserID + "::T_FORGETCN") new via ViaRdd("")
			ENDIF
		ELSE
			SELECT T_FORGETCN
		ENDIF

VO Select Problem

Posted: Fri Jul 20, 2018 8:01 am
by wriedmann
Hi,

if you are using VO 2.8. you have to include the STD.UDC in the application properties, tabpage "UDCs".

Wolfgang

VO Select Problem

Posted: Fri Jul 20, 2018 11:44 am
by Ивайло Кантурски
Hello,

i'm using XSharp and convert VO AEF to XSharp code. When i try to compile the project get the error which are related to this code. Do i need to include UDC file in XCode project?

VO Select Problem

Posted: Fri Jul 20, 2018 11:54 am
by wriedmann
Hello,

do you are using the Vulcan runtime DLLs? Or better, do you have a Vulcan installation on your disk?

If no, you have to wait until the RDDs are released.

If yes, add the following line at the top of your prg file:

Code: Select all

#include "C:Program Files (x86)Vulcan.NET 4.0IncludeDBCmds.vh"
That file includes the needed preprocessor definitions.

Wolfgang

VO Select Problem

Posted: Fri Jul 20, 2018 5:37 pm
by Chris
Guys,

The Select() function is actually defined in the VulcanRTFuncs.dll file. In the X# runtime, this is not implemented yet, because the X# RDDs are not ready.

So if you have the vulcan runtime, then this code should work already. Otherwise, you will need to wait for a couple months, till we release the X# RDDs and also include the dbf related functions in or runtime.

Chris

VO Select Problem

Posted: Sat Jul 21, 2018 6:54 am
by Ивайло Кантурски
Hello,

thank you for your answers. I use X# at the moment because i don't have the Vulcan redistributables. Just want to check the X# product and verify that we can convert part of our VO code in .NET

Is there way to find somehow Vulcan redistributes?

VO Select Problem

Posted: Sat Jul 21, 2018 7:21 am
by wriedmann
Hello,
Is there way to find somehow Vulcan redistributes?
I will prepare some migration samples until tomorrow evening, based on the Standard Application and the SQL Standard Application.
That should help to understand the migration process.

Wolfgang

VO Select Problem

Posted: Sun Jul 22, 2018 3:45 pm
by wriedmann
Hello,

I have now prepared two different samples, together with the VO sources, the X# sources (as XIDE export file) and all needed binaries (X# compiled exe, Vulcan runtime).

The changes to make compile these applications in X# were only a few, and all of them because .NET does not allow methods and access/assign with the same name. Therefore there is not more an access/assign "Font" in the Control class, and you need to replace them with "ControlFont" in exactly 4 (four) places in the AboutDialog code.

After this change, both applications run and open DBF files and (in the case of the SQL version) also ODBC data sources.

You can find the files here:
https://riedmann.it/download/StandardMDI_XS.zip
https://riedmann.it/download/StandardMDISQL_XS.zip

Please note that I have the redistribution rights to the Vulcan Runtime DLLs, but if you don't have a valid Vulcan license, you cannot distribute them to your customers, but you can use them of course to run the application I have delivered.

Please feel free to ask here if you have more questions.

Wolfgang

VO Select Problem

Posted: Mon Jul 23, 2018 8:36 am
by Ивайло Кантурски
Hello,

i rewrite the code because i don't want to use .vh externals

Code: Select all

IF DBSelectArea("T_FORGETCN") == 0
	IF (gwMEM_RDD == 3) .OR. (gwMEM_RDD == 5)
		DBUseArea(true, ViaRdd(""), gcInitialCatalog + "::T_FORGETCN")                
	ELSEIF gwMEM_RDD == 4
		DBUseArea(true, ViaRdd(""), gcUserID + "::T_FORGETCN")
	ENDIF
ELSE
	DBSelectArea("T_FORGETCN")
ENDIF
it's works ok but now XSC.EXE crushed with the error:

Inner Exception 1:
InvalidCastException:
Unable to cast object of type
'LanguageService.CodeAnalysis.XSharp.Syntax.InternalSyntax.EmptyStatementSyntax'
to type 'LanguageService.CodeAnalysis.XSharp.Syntax.InternalSyntax.ExpressionSyntax'.


System.AggregateException
HResult=0x80131500
Message=One or more errors occurred.
Source=mscorlib
StackTrace:
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
at System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, Action`1 body)
at LanguageService.CodeAnalysis.XSharp.XSharpCompiler.CreateCompilation(TextWriter consoleOutput, TouchedFileLogger touchedFilesLogger, ErrorLogger errorLogger) in C:XSharpDevRoslynsrcCompilersCSharpPortableCommandLineCSharpCompiler.cs:line 63
at LanguageService.CodeAnalysis.CommonCompiler.RunCore(TextWriter consoleOutput, ErrorLogger errorLogger, CancellationToken cancellationToken) in C:XSharpDevRoslynsrcCompilersCorePortableCommandLineCommonCompiler.cs:line 530
at LanguageService.CodeAnalysis.CommonCompiler.Run(TextWriter consoleOutput, CancellationToken cancellationToken) in C:XSharpDevRoslynsrcCompilersCorePortableCommandLineCommonCompiler.cs:line 479
at LanguageService.CodeAnalysis.XSharp.CommandLine.Xsc.<>c__DisplayClass2_0.<Run>b__0(TextWriter tw) in C:XSharpDevXSharpsrcCompilerxscXsc.cs:line 58
at LanguageService.CodeAnalysis.CommandLine.ConsoleUtil.RunWithUtf8Output[T](Func`2 func) in C:XSharpDevRoslynsrcCompilersCoreCommandLineConsoleUtil.cs:line 26
at LanguageService.CodeAnalysis.CommandLine.ConsoleUtil.RunWithUtf8Output[T](Boolean utf8Output, TextWriter textWriter, Func`2 func) in C:XSharpDevRoslynsrcCompilersCoreCommandLineConsoleUtil.cs:line 51
at LanguageService.CodeAnalysis.XSharp.CommandLine.Xsc.Run(String[] args, BuildPaths buildPaths, TextWriter textWriter, IAnalyzerAssemblyLoader analyzerLoader) in C:XSharpDevXSharpsrcCompilerxscXsc.cs:line 58
at LanguageService.CodeAnalysis.CommandLine.DesktopBuildClient.RunLocalCompilation(String[] arguments, BuildPaths buildPaths, TextWriter textWriter) in C:XSharpDevRoslynsrcCompilersSharedDesktopBuildClient.cs:line 66
at LanguageService.CodeAnalysis.CommandLine.BuildClient.RunCompilation(IEnumerable`1 originalArguments, BuildPaths buildPaths, TextWriter textWriter) in C:XSharpDevRoslynsrcCompilersSharedBuildClient.cs:line 93
at LanguageService.CodeAnalysis.CommandLine.DesktopBuildClient.Run(IEnumerable`1 arguments, IEnumerable`1 extraArguments, RequestLanguage language, CompileFunc compileFunc, IAnalyzerAssemblyLoader analyzerAssemblyLoader) in C:XSharpDevRoslynsrcCompilersSharedDesktopBuildClient.cs:line 49
at LanguageService.CodeAnalysis.XSharp.CommandLine.Program.Main(String[] args, String[] extraArgs) in C:XSharpDevXSharpsrcCompilerxscProgram.cs:line 35
at LanguageService.CodeAnalysis.XSharp.CommandLine.Program.Main(String[] args) in C:XSharpDevXSharpsrcCompilerxscProgram.cs:line 31

VO Select Problem

Posted: Mon Jul 23, 2018 8:45 am
by wriedmann
Hello,

it'a a long time since I use DBUseArea() the last time - using DBServer classes all the time.

Code: Select all

DBUseArea(true, ViaRdd(""), gcInitialCatalog + "::T_FORGETCN") 
AFAIK the 3rd parameter needs to be a pathname, and I don't think "::" can be part of a legal filename.

I cannot say why this code crashes the compiler - must leave this to a member of the development team.

Wolfgang