Вставка значений с помощью Application Engine
Я пытаюсь вставить значения из моего текстового файла в запись, используя движок приложения.
Я знаю, что это можно сделать с помощью файловой разметки, но мое требование не использовать файловую разметку, но нужно вставить в запись, используя код людей из движка приложений.
Я пишу следующий PeopleCode в моем appengine (здесь я пытаюсь добавить только одно значение поля в мою запись в этом примере)
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, отдел).
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();