Iam пытается вставить данные из StringGrid в таблицу Oracle DB, для которой я пробовал, как показано ниже.Delphi Вставить данные из StringGrid в таблицу базы данных
function TfrmMapping.LoadtoTable: Boolean;
var
I, J: Integer;
lQuery, s: string;
lData: TArray<string>;
begin
for I := 0 to vTableColumns.count - 1 do
begin
if I <> vTableColumns.count - 1 then
begin
s := s + vTableColumns[I] + ',';
end
else
begin
s := s + vTableColumns[I];
end;
end;
for I := 1 to StrGrdLoadCSVData.RowCount - 1 do
begin
vSortedGrid.Add(StrGrdLoadCSVData.Rows[I].CommaText);
end;
for I := 0 to vSortedGrid.count - 1 do
begin
lQuery := 'Insert into ' + cmbBXDBTables.Text + '(' + s + ') values(' +
vSortedGrid[I] + ')';
DataModSample.FDQuery1.SQL.Clear;
DataModSample.FDQuery1.SQL.Add(lQuery);
DataModSample.FDQuery1.ExecSQL;
end;
Result := True;
end;
В коде, И добавляя все данные StringGrid (StrGrdLoadCSVData) к StringList (vSortedGrid), а теперь IAM пытается петля через StringList добавить каждую строку в БД, но Iam не в состоянии вставить, потому что мои принимают значения, как этого
Insert into abc(sno,Name)values(1,welcome);
это происходит потому, что нет цитат на welcome
он дает ошибку.
это ошибка, как это: [FireDAC][Phys][Ora]ORA-00984:column not allowed here
Как я могу изменить мой код для вставки данных успешно Дб.
EDIT
Моя таблица структура:
Name Type
--------- ------------
SNO NUMBER(38)
NAME VARCHAR2(15)
мой желаемый результат в таблице должно быть так:
SNO NAME
---------- ----------
1 Hello
2 Welcome
Значения в таблице пришедшего из строки Список
Используйте 'QuotedStr()' ' – Sami
'Вставить в аЬс (SNO, NAME) значения (' '1, добро пожаловать '') '', если я использую Quotedstr, он получает такие значения, как ' [FireDAC] [Phys] [Ora] ORA-00947: недостаточно значений , если нет котировки, это ошибка: '[FireDAC] [Phys] [Ora] ORA-00984: здесь не разрешена колонка – userhi
Вы можете попробовать мой ответ. – Sami