使用Application Engine插入值

时间:2014-10-27 11:28:11

标签: sql-server peoplesoft peoplesoft-app-engine

我正在尝试使用app引擎将文本文件中的值插入记录 我知道这可以使用文件布局完成,但我的要求建议不要使用文件布局,但需要使用app引擎人员代码插入记录。

我正在我的appengine中编写以下PeopleCode (这里我试图在这个例子中只为我的记录添加一个字段值)

Local File &MYFILE; 
Local Record &REC_ERN; 


&MYFILE = GetFile("c:\sample.csv", "R", %FilePath_Absolute); 

If &MYFILE.IsOpen Then 

While &MYFILE.ReadLine(&STRING); 






MessageBox(0, "", 0, 0, &STRING); 
&source_type_id = Substring(&STRING, 1, 3); 
&Stmt= "INSERT INTO KGS_TEST (ID) VALUES ( &source_type_id)"; 

SQLExec(&Stmt); 
REM MessageBox(0, "", 0, 0, &source_type_id); 


End-While; 
End-If; 

&MYFILE.Close(); 

我面临的问题是& source_type_id = Substring(& STRING,1,3); 变量& source_type_id有值,但我需要将它插入到我创建的记录中,该记录包含字段(ID,NAME,AGE,department)。

1 个答案:

答案 0 :(得分:1)

您遇到的问题是您的变量& source_type_id位于字符串中,因此字面上将其解释为字符串的一部分,而不是您想要的变量值。

您需要做的是在值的字符串中放置一个绑定变量,然后将该值作为参数传递给SqlExec。

Local File &MYFILE; 

&MYFILE = GetFile("c:\sample.csv", "R", %FilePath_Absolute); 

If &MYFILE.IsOpen Then 
    While &MYFILE.ReadLine(&STRING); 

        MessageBox(0, "", 0, 0, &STRING); 
        &source_type_id = Substring(&STRING, 1, 3); 
        &Stmt= "INSERT INTO KGS_TEST (ID) VALUES ( :1)"; 

        SQLExec(&Stmt,&source_type_id); 
        REM MessageBox(0, "", 0, 0, &source_type_id); 

    End-While; 
End-If; 

&MYFILE.Close();