Make your applications work in DataFlex NextGen: Difference between revisions

From DataFlex Wiki
Jump to navigationJump to search
Update to supported database types now that DF20 has been released
(Created page with "= Document scope and public resources = This is a document that is Work In Progress as it is based on information shared by Data Access in public. The scope of this document i...")
 
(Update to supported database types now that DF20 has been released)
 
(6 intermediate revisions by 2 users not shown)
Line 6: Line 6:
* [https://learning.dataaccess.com/courses/synergy-2019/getting-your-applications-ready-for-dataflex-nextgen/ Getting your applications ready for DataFlex NextGen by Stephen Meeley at Synergy 2019]
* [https://learning.dataaccess.com/courses/synergy-2019/getting-your-applications-ready-for-dataflex-nextgen/ Getting your applications ready for DataFlex NextGen by Stephen Meeley at Synergy 2019]
* [https://learning.dataaccess.com/courses/synergy-2019/dataflex-nextgen/ DataFlex NextGen by Harm Wibier at Synergy 2019]
* [https://learning.dataaccess.com/courses/synergy-2019/dataflex-nextgen/ DataFlex NextGen by Harm Wibier at Synergy 2019]
Also read the following in the documentation:
* [https://docs.dataaccess.com/dataflexhelp/#t=mergedProjects/Welcome/Language_and_Code_Cleanup.htm DataFlex Help - Language and Code Cleanup]


As indicated there, things ''might'' still change.
As indicated there, things ''might'' still change.
Line 89: Line 92:


There's an alias for LongPtr in DataFlex 19.1
There's an alias for LongPtr in DataFlex 19.1
=== Calling conventions ===
In DataFlex 20 you should use the following calling conventions for your external DLLs
* 32 bit: stdcall
* 64 bit: fastcall
See also: [https://renenyffenegger.ch/notes/development/languages/C-C-plus-plus/calling-convention Calling conventions]
The DF20 runtime uses the library [https://en.wikipedia.org/wiki/Libffi libffi] to make the call.
It is possible that for 32 bit the cdecl calling convention also works now, but it has so far only seen limited testing.


= Unicode Support =
= Unicode Support =
Line 126: Line 141:
SQL is the preferred database type.
SQL is the preferred database type.


MSSQL has unicode datatypes (he "n" variants) : nvarchar, nchar, nvarchar(max), ntext
MSSQL has unicode datatypes (he "n" variants) : nvarchar, nchar, nvarchar(max), ntext. those are all UTF-16.
 
MSSQL 2019 will support UTF-8, this is not recommended (or supported) at this moment.


MSSQL 2019 will support UTF-8
MySQL supports both UTF-16 as well as UTF-8


DB2 supports UTF-8 and UTF-16


At this moment there is not final decision on what the embedded database support with unicode will be.
The embedded database only supports OEM and has no unicode support.
 
The Connectivity kit handles all of the character translations between database backend and UTF-8 strings.


== Migrating to Unicode ==
== Migrating to Unicode ==
Line 137: Line 157:


Bytes are not code points, one character can take up to 4 bytes.
Bytes are not code points, one character can take up to 4 bytes.
== more info on unicode ==
* https://home.unicode.org/ (The unicode consortium official home page)
* https://www.unicode.org/standard/WhatIsUnicode.html
* [https://unicode-table.com/en/ unicode-table.com]
* [https://apps.timwhitlock.info/unicode/inspect timwhitlock unicode inspect app]
[[Category:How To]]
[[Category:Tutorials]]

Navigation menu