Вставка значений с помощью 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(); 
Другие вопросы по тегам