L
Вообще, по первончальному вопросу и не скажешь.Через ОЛЕ объект это понятно, у меня другая проблема (
Разбирать строки прийдётся значит. Если есть вменяемый разделитель, например запятая или поле фиксированной длинны, то разберётся, а иначе только словарём названий городов, улиц, только тут уже 100% точности разбора не добиться.Строки из Екселя сгруппированы большей своей частью и поэтому не совпдают с существующими таблицами в БД,
http://cp.liveofan.jino-net.ru./SQL.rar
http://cp.liveofan.jino-net.ru./SQL.rar
http://cp.liveofan.jino-net.ru./SQL1.rar
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add("Insert into TexПер (Название_орг,Договор,Сотрудники,Адрес,Телефон,Наименование,Срок_работ,Услови
е) values (@org,@dog,@sotrud,@adres,@tel,@naimen,@srok,@usl)");
//AnsiString tmp_org="", tmp_dog="", tmp_sotrud="", tmp_adres="", tmp_tel="", tmp_naimen="", tmp_srok="", tmp_usl=""; //Здесь создаешь
//временные переменные для всех полей которые не должны быть(NB!!!)пустыми
ADOQuery2->Active = true;
while(!ADOQuery1->Eof){
ADOQuery2->Parameters->ParamByName("@org")->Value = ADOQuery1->Fields->Fields[1]->Value;
ADOQuery2->Parameters->ParamByName("@dog")->Value = ADOQuery1->Fields->Fields[2]->Value;
ADOQuery2->Parameters->ParamByName("@sotrud")->Value =ADOQuery1->Fields->Fields[3]->Value;
ADOQuery2->Parameters->ParamByName("@adres")->Value = ADOQuery1->Fields->Fields[4]->Value;
ADOQuery2->Parameters->ParamByName("@tel")->Value = ADOQuery1->Fields->Fields[5]->Value;
ADOQuery2->Parameters->ParamByName("@naimen")->Value =ADOQuery1->Fields->Fields[6]->Value;
ADOQuery2->Parameters->ParamByName("@srok")->Value =ADOQuery1->Fields->Fields[7]->Value;
ADOQuery2->Parameters->ParamByName("@usl")->Value =ADOQuery1->Fields->Fields[8]->Value;
ADOQuery2->ExecSQL();
ADOQuery1->Next(); }
CREATE PROCEDURE DobavIm
@org varchar(50),
@dog varchar(50),
@sotrud varchar(50),
@adres varchar(50),
@tel varchar(50),
@naimen varchar(50),
@srok varchar(50),
@usl varchar(50)
AS
Insert into TexПер (Название_орг,Договор,Сотрудники,Адрес,Телефон,Наименование,Срок_работ,Услови
е) values (@org,@dog,@sotrud,@adres,@tel,@naimen,@srok,@usl)
GO
ADOQuery2->Active = true;
while(!ADOQuery1->Eof){
ADOQuery2->Parameters->ParamByName("@org")->Value = ADOQuery1->Fields->Fields[1]->Value;
ADOQuery2->Parameters->ParamByName("@dog")->Value = ADOQuery1->Fields->Fields[2]->Value;
ADOQuery2->Parameters->ParamByName("@sotrud")->Value =ADOQuery1->Fields->Fields[3]->Value;
ADOQuery2->Parameters->ParamByName("@adres")->Value = ADOQuery1->Fields->Fields[4]->Value;
ADOQuery2->Parameters->ParamByName("@tel")->Value = ADOQuery1->Fields->Fields[5]->Value;
ADOQuery2->Parameters->ParamByName("@naimen")->Value =ADOQuery1->Fields->Fields[6]->Value;
ADOQuery2->Parameters->ParamByName("@srok")->Value =ADOQuery1->Fields->Fields[7]->Value;
ADOQuery2->Parameters->ParamByName("@usl")->Value =ADOQuery1->Fields->Fields[8]->Value;
ADOQuery2->ExecSQL();
ADOQuery1->Next(); }
Обучение наступательной кибербезопасности в игровой форме. Начать игру!