ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

New WINDEV, WEBDEV and WINDEV Mobile 2025 feature!
Help / WLanguage / Managing databases / HFSQL / HFSQL functions
  • Importing a Text Memo item
  • Importing a Binary Memo item
  • Importing an indexed item
  • Importing a Time item
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
Imports a CSV file into an HFSQL Classic or Client/Server data file. This data file must have been defined in the data model editor, or declared with <Source>.Declare, <Source>.DeclareExternal or <Source>.DescribeFile).
Note: If the HFSQL data file used does not physically exist, it will be automatically created.
Example
// Imports the name, address and logo (binary memo) of customers.
// Reinitialize the other items.
// A line in the CSV file contains 3 or 5 columns:
// - Name, - Address, - File name for the logo
// (if the logo file name is not an empty string, 2 columns are added)
// - The type of the memo (IMG), - A comment
IF Customer.ImportCSV("C:\AnExample\Customer.csv", "NAME,ADDRESS,LOGO", hDefaultVal, "ProgressBar1") = False THEN
	Error("Unable to import")
ELSE
	// Process
END
// This file will be imported. 
sCSVFilePath is string = "ImportPlayer.csv"
// This file contains 2 lines:
// "PlayerImport1","19850618"
// "PlayerImport2","19900512"
// sPlayerName and dDateOfBirth are 2 String and Date items in the Player file
IF Player.ImportCSV(sCSVFilePath, "sPlayerName,dDateOfBirth", ...
	"," + Charact(127) + """" + Charact(127) + CR + Charact(127) + ".") THEN
	...
ELSE
	...
END
Syntax
<Result> = <Data file>.ImportCSV(<Full path to CSV file> , <List of items> , <Separators> [, <Options> [, <Progress Bar>]])
<Result>: Boolean
  • True if the operation was performed,
  • False if an error occurs. HError returns more details about the problem.
<Data file>: Control name
Name of the HFSQL data file to import into.
<Full path to CSV file>: Character string
Full path to the CSV file to be imported.
<List of items>: Character string
List of item names in the CSV file. Names can be delimited by single quotes and are separated by commas or CR characters. "Composite key" item names are ignored.
If this parameter is not specified or is an empty string (""), all items are imported (except compound keys) in the order in which they were created in the physical file.
<Separators>: Character string
List of separators used for columns, strings, rows and decimal places.
The different separators are separated by Charact(127) (for backward compatibility with WINDEV 5.5).
<Column separator> + Charact(127) + <String separator> + Charact(127) +
<Row separator> + Charact(127) +<Decimal separator>
  • <Column separator>: String ("," by default).
  • <String separator>: Character (" by default)
  • <Row separator>: String (CR by default, i.e., Charact(13)+Charact(10))
  • <Decimal separator>: Character ("." or "," by default)
<Options>: Optional Integer constant (or combination of constants)
Configures the type of import to perform:
hCopyAutoIDThe automatic identifier is copied. It is not recalculated.
hImpCreationIf the data file to import into exists, it will be overwritten.
hImpIgnoreFirstLineThe first line of the imported file is ignored.
hImpIgnoreInvalidLineImport ignores lines with an invalid structure.
The structure is invalid if data is missing for one or more items, or if string separators are missing.
hImpIgnoreEmptyItemIf one or more items are not populated in the CSV file, the corresponding lines are still imported.
The missing items contain:
  • the default value of the items if the hDefaultVal constant is specified.
  • the value of the items in the current record before calling <Source>.ImportCSV.
hImpBreakableImport can be interrupted by pressing the Esc key (parameter ignored on data files in 5.5 format).
If the import is interrupted, the imported records are kept in the data file. A re-index operation is automatically performed if necessary (cannot be interrupted).
hImpNormal
(default value)
If the data file to import into already exists, it is populated with the imported data; otherwise, the data file is created.
Data integrity and duplicates are not checked.
Non-imported items take the value of the current record.
String delimiters are used.
Automatic identifiers are recalculated.
OLE DBNative Connectors (Native Accesses) Data integrity and duplicates are always checked.
hImpOEM2ANSIImported strings are automatically converted from OEM to ANSI.
hImpNoDelimiterString separators, if any, are part of the item.
hImpTestDuplicatesChecks for duplicate values on unique keys during an import operation (enabled only on unique keys, not on the entire record).
OLE DBNative Connectors (Native Accesses) Always checks for duplicate values.
hImpTestIntegrityChecks data integrity during an import operation.
OLE DBNative Connectors (Native Accesses) Data integrity is always checked.
hDefaultValFor non-imported items, the values of the current record are reinitialized:
  • with their default value if the hDefaultVal constant is specified.
  • with the value of the corresponding items in the current record before calling <Source>.ImportCSV, if the hDefaultVal constant is not specified.
<Progress Bar>: Optional control name or window name
  • Name of the window in which the progress bar will be displayed,
  • Name of the Progress Bar control.
WEBDEV - Server code This parameter is not available.
Remarks

Importing a Text Memo item

  • If the hImpNoDelimiter constant is not specified:
    The text to import can contain <Row separator> or <Column separator>. The text to import must not contain any <String separator>.
  • If the hImpNoDelimiter constant is specified:
    The text to import must not contain any <Row separator> or <Column separator> otherwise they will be interpreted as such. The text to import can contain <String separator>.

Importing a Binary Memo item

For a binary memo item, 3 columns are associated in the CSV file.
  • Column 1: Full path of the binary file to be added to the memo. This is a character string. If this string is empty, the next two columns must be left blank in the CSV file.
  • Column 2: Memo type. This is a string that can take the following values:
    • "IMG" to indicate that the file is an image file.
    • "WAV" to indicate that the file is a sound file.
    • "OLE" to indicate that the file is an OLE file.
    • "BIN" (or other) to indicate that the file is an ordinary binary file.
  • Column 3: Information formatted as a string of up to 65535 characters. If the number of characters is greater, the string is truncated.
Structure of the CSV file to be imported
Let's take a look at the following example:
  • items to be imported:
    • <LASTNAME>: Text item
    • <AGE>: Numeric item
    • <FIRSTNAME>: Text item
    • <COMMENT>: Text memo
    • <PHOTO>: Image binary memo
  • delimiters used:
    • <String separator>: "
    • <Column separator>: ,
    • <Row separator>: CR
In this example:
  • If the hImpNoDelimiter constant is not specified, the CSV file will have the following structure: "LASTNAME", AGE, "FIRSTNAME", "COMMENT", "PHOTO memo file", "PHOTO file type", "PHOTO memo info"+CR
  • If the hImpNoDelimiter constant is specified, the CSV file will have the following structure: LASTNAME, AGE, FIRSTNAME, COMMENT, PHOTO memo file, PHOTO memo type, PHOTO memo info+CR
Each content can be empty.

Importing an indexed item

<Source>.ImportCSV cannot be used to import indexed items.

Importing a Time item

<Source>.ImportCSV saves invalid times if the times to import are not in one of the formats available in the analysis.
Reminder: The available formats in the analysis are:
  • HH
  • HHMM
  • HHMMSS
  • HHMMSSCC
Business / UI classification: Business Logic
Component: wd300hf.dll
Minimum version required
  • Version 2025
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 12/09/2024

Send a report | Local help