我正在尝试使用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)。
答案 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();