Creating Temp-Table taking the table name from combo box in progress 4gl, Open Edge
Date : March 29 2020, 07:55 AM
I think the issue was by ths following , Given that you have a handle to your ComboBox-Widget, you can create a new temp-table dynamically like this: DEF VAR ttH AS HANDLE.
CREATE TEMP-TABLE ttH.
ttH:CREATE-LIKE(ComboBoxWidgetHandle:SCREEN-VALUE).
|
In progress 4gl get field names of temp-table
Date : March 29 2020, 07:55 AM
will help you I have some temp-tables in my script that I will be exporting to a csv file. I need to also export the field names as well as their values. How can I get the field names of temp-tables? , Here's a quick and dirty example of what you're asking for: define temp-table tt1
field f1 as character
field f2 as decimal
.
def var iCnt as integer no-undo.
create tt1.
assign
tt1.f1 = "f1"
tt1.f2 = 123.456
.
do icnt = 1 to buffer tt1:num-fields:
display buffer tt1:buffer-field(icnt):name
buffer tt1:buffer-field(icnt):buffer-value
with down
.
down.
end.
|
How to strip characters out of Temp Table after Bulk Insert
Date : March 29 2020, 07:55 AM
I hope this helps . @seagulledge, in a comment on the question, is correct, or at least partially correct, in stating that the CHAR(10) and CHAR(13) are out of order. A carriage-return (CR) is CHAR(13) and a line-feed (LF) is CHAR(10). HOWEVER, the main thing preventing this from working is not the order of those two characters: it is the simple fact that the newlines -- whether they are \r\n or just \n -- are in the incoming CSV file, and hence the BULK INSERT command is assuming that the newlines are separating input rows (which makes sense for it to do). This can be seen looking at the VARBINARY output in the question. There are two rows of output, both starting with 0x.
|
Reading XML file to Temp-table in Progress-4gl
Date : March 29 2020, 07:55 AM
I wish this help you This seems to be a known bug, I found a Knowledge Base entry for it: https://knowledgebase.progress.com/articles/Article/How-to-read-an-XML-in-a-temp-table-using-READ-XMLThe workaround: In your XML, you're going to need an outer node with the dataset name. Like this: <dataset_name>
<Table_Name>
<Field_Name_1>Value_1</Field_Name_1>
<Field_Name_2>Value_2</Field_Name_2>
</Table_Name>
</dataset_name>
DEFINE TEMP-TABLE Table_Name
FIELD Field_Name_1 AS CHAR
FIELD Field_Name_2 AS CHAR
.
define dataset dataset_name for table_name.
dataset dataset_name:read-xml("File","C:\myFile.xml","empty",?,?,?).
DEF VAR i AS INT NO-UNDO.
FOR EACH Table_Name:
i=i + 1.
DISP Field_Name_1 format "x(20)"
Field_Name_2 format "x(20)".
END.
DISP i.
|
Getting XML data into Temp-Table in Progress 4GL/OpenEdge ABL
Date : March 29 2020, 07:55 AM
wish of those help Super close. CMA is not corresponding to the table but to a container tag that could be represented by a Prodataset in this case. Instead just use "QUOTES". I would not use xml like this in production, you might not have any way to interfere if the source is down etc. I would pull the xml down another way and then load it. DEF TEMP-TABLE QUOTES NO-UNDO
FIELD PAPEL AS CHAR
FIELD DESCRICAO AS CHAR
FIELD ULTIMO AS DEC
FIELD DIFERENCIAL AS DEC
FIELD VARIACAO AS DEC
FIELD FECHANT AS DEC
FIELD COMPRA AS DEC
FIELD MINIMA AS DEC
FIELD MAXIMA AS DEC
FIELD VENCIMENTO AS INT
FIELD HORA AS CHAR
FIELD DATA AS DATE.
DEF VAR cSourceType AS CHAR NO-UNDO.
DEF VAR cFile AS CHAR NO-UNDO.
DEF VAR cReadMode AS CHAR NO-UNDO.
DEF VAR cSchemaLocation AS CHAR NO-UNDO.
DEF VAR lOverrideDefaultMapping AS LOGICAL NO-UNDO.
DEF VAR cFieldTypeMapping AS CHAR NO-UNDO.
DEF VAR cVerifySchemaMode AS CHAR NO-UNDO.
DEF VAR lReturn AS LOGICAL NO-UNDO.
ASSIGN
cSourceType = "FILE"
cFile = "http://sfeed-cot01.cma.com.br/clientes/cocamar/cbot.xml"
cReadMode = "EMPTY"
cSchemaLocation = ?
lOverrideDefaultMapping = ?
cFieldTypeMapping = ?
cVerifySchemaMode = ?.
lReturn = TEMP-TABLE QUOTES:READ-XML(cSourceType, cFile, cReadMode,
cSchemaLocation, lOverrideDefaultMapping, cFieldTypeMapping,
cVerifySchemaMode).
DISP lReturn.
IF lReturn THEN
FOR EACH QUOTES NO-LOCK:
DISPLAY QUOTES.PAPEL QUOTES.DESCRICAO.
END.
|