Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.07;
Скачать: CL | DM;

Вниз

Как создать таблицу ADO+Access...   Найти похожие ветки 

 
Галинка ©   (2004-10-04 09:49) [0]

Вот собственно говоря и весь вопрос...


 
ЮЮ ©   (2004-10-04 09:50) [1]

выполнить запрос CREATE TABLE ...


 
Галинка ©   (2004-10-08 15:52) [2]

Создание получается, а использование (((...
Вот код создания:
ZemlDM.ADOCommand1.CommandText:="Create Table Rez_"
                                       +TableNameStr+"_Epic
       (InNNID autoincrement Not Null Primary Key, K_max Single,
                                                 H_gip Single)";
      ZemlDM.ADOCommand1.Execute;
      ZemlDM.ADOCommand1.CommandText:="Create Table Rez_"
                                      +TableNameStr+"_Radiusy
       (InIID autoincrement Not Null Primary Key, InNNID  
        Integer, I_tek Single, BolRad Single, MalRad Single)";
      ZemlDM.ADOCommand1.Execute;

Вот код заполнения:
ZemlDM.ADOCommand1.CommandText:=Format("Insert Into
     Rez_"+TableNameStr+"_Epic (K_max, H_gip) Values  (%f, %f)",
     [Tek_K, Tek_H]);
    ZemlDM.ADOCommand1.Execute;
    ZemlDM.ADOCommand1.CommandText:=Format("Insert Into
     Rez_"+TableNameStr+"_Radiusy (InNNID, I_Tek, BolRad,
     MalRad) Values  (%d, %f, %f, %f)", [i, TekIzoParam.I,
     TekIzoParam.rad_max, TekIzoParam.rad_min]);
    ZemlDM.ADOCommand1.Execute;

Создается все и заполняется прекрасно, а вот использовать не получается...


 
Галинка ©   (2004-10-08 15:57) [3]

А весь код такой:
procedure TMainForm.CalcNew1Execute(Sender: TObject);
var
Dialog1:TMDBSelectDlg;
Dialog2, Dialog3:TMDBEditDlg;
IntervalDlg:TIntervalsDlg;
i:Integer;
begin
TekActionValue:=0;
Dialog1:=TMDBSelectDlg.Create(Application);
with Dialog1 do
 try
  ShowModal;
   if ModalResult=mrOK then
    Dialog2:=TMDBEditDlg.Create(Application);
    with Dialog2 do
     try
      ShowModal;
       if ModalResult=mrOK then
        begin
         Raschet.FullCalculate; {Расчитываем коэффициенты}
         IntervalDlg:=TIntervalsDlg.Create(Application);
          with IntervalDlg do
           try
            if IntervalDlg.ShowModal=mrOK then
             begin
               try
                ZemlDM.ADOCommand1.CommandText:="Create Table Rez_"+TableNameStr+"_Epic (InNNID autoincrement Not Null Primary Key, K_max Single, H_gip Single)";
                ZemlDM.ADOCommand1.Execute;
                ZemlDM.ADOCommand1.CommandText:="Create Table Rez_"+TableNameStr+"_Radiusy (InIID autoincrement Not Null Primary Key, InNNID Integer, I_tek Single, BolRad Single, MalRad Single)";
                ZemlDM.ADOCommand1.Execute;
               except
                on EOleException do
                 begin
                  if (MessageDlg("Таблица с общим именем "+ TableNameStr+" уже существует!"+#13+#10+"Записать данные в другую таблицу?",mtWarning,[mbYes, mbNo],0)=mrYes) then
                   with TTableNameSelectDlg.Create(Application) do
                    try
                     if ShowModal=mrOK then
                      begin
                       ZemlDM.ADOCommand1.CommandText:="Create Table Rez_"+TableNameStr+"_Epic (InNNID autoincrement Not Null Primary Key, K_max Single, H_gip Single)";
                       ZemlDM.ADOCommand1.Execute;
                       ZemlDM.ADOCommand1.CommandText:="Create Table Rez_"+TableNameStr+"_Radiusy (InIID autoincrement Not Null Primary Key, InNNID Integer, I_tek Single, BolRad Single, MalRad Single)";
                       ZemlDM.ADOCommand1.Execute;
                      end;
                    finally
                     Free;
                    end
                  else
                    begin
                     ZemlDM.ADOCommand1.CommandText:="Delete from Rez_"+TableNameStr+"_Epic";
                     ZemlDM.ADOCommand1.Execute;
                     ZemlDM.ADOCommand1.CommandText:="Delete from Rez_"+TableNameStr+"_Radiusy";
                     ZemlDM.ADOCommand1.Execute;
                    end;
                 end;
              end;
              {Расчитываем Радиусы}
              DecimalSeparator:=".";
              Tek_K:=K_min;i:=0;
               repeat
                Tek_h:=h_min;
                 repeat
                  ZemlDM.ADOCommand1.CommandText:=Format("Insert Into Rez_"+TableNameStr+"_Epic (K_max, H_gip) Values  (%f, %f)", [Tek_K, Tek_H]);
                  ZemlDM.ADOCommand1.Execute;
                  inc(i);
                  Tek_i:=2;
                   repeat
                    TekIzoParam:=Raschet.GetDelta(TekKoefD, TekKoefP, Tek_h, Tek_K, Tek_i);
                    if TekIzoParam.rad_min>0 then
                    begin
                     ZemlDM.ADOCommand1.CommandText:=Format("Insert Into Rez_"+TableNameStr+"_Radiusy (InNNID, I_Tek, BolRad, MalRad) Values  (%d, %f, %f, %f)", [i, TekIzoParam.I, TekIzoParam.rad_max, TekIzoParam.rad_min]);
                     ZemlDM.ADOCommand1.Execute;
                    end;
                    Tek_i:=Tek_i+0.5;
                   until (TekIzoParam.rad_min<0) or (TekIzoParam.rad_max<0);
                   Tek_h:=Tek_h+h_step;
                 until Tek_h>h_max;
                Tek_K:=Tek_K+K_step;
               until Tek_K>K_max;
              DecimalSeparator:=",";
              SetLength(TablesNames,1);
              TablesNames[0]:="Rez_"+TableNameStr+"_Epic";
              SetLength(TablesNames,2);
              TablesNames[1]:="Rez_"+TableNameStr+"_Radiusy";
              SetLength(FieldNames,1);
              FieldNames[0]:="K_max";
              SetLength(FieldNames,2);
              FieldNames[1]:="H_gip";
              SetLength(FieldNames,3);
              FieldNames[2]:="I_tek";
              SetLength(FieldNames,4);
              FieldNames[3]:="BolRad";
              SetLength(FieldNames,5);
              FieldNames[4]:="MalRad";
              TekMasterDetailFields:="InNNID;InNNID";
             
              Dialog3:=TMDBEditDlg.Create(Application);
              with Dialog3 do
               if ShowModal=mrOK then
                begin
                 if (MessageDlg("Хотите построить схему?",mtInformation,[mbYes, mbNo],0)=mrYes) then
                  CreateMDIChild(TableNameStr);
                end;
             end;
           finally
            Free;
           end;
         end;
     finally
      Free;
     end;
 finally
  Free;
 end;
end;

procedure TMDBEditDlg.OKBtnClick(Sender: TObject);
begin
Visible:=false;
TekArPZ:=ArZemlInit;
ZemlDM.ADOTable1.Active:=false;
ZemlDM.ADOTable2.Active:=false;
ZemlDM.ADOTable2.MasterFields:="";
end;

procedure TMDBEditDlg.FormCreate(Sender: TObject);
var
Ni,Nf,N_Item:integer;
begin
ZemlDM.ADOTable1.TableName:=TablesNames[0];
ZemlDM.ADOTable2.TableName:=TablesNames[1];
ZemlDM.ADOTable1.Active:=true;
ZemlDM.ADOTable2.Active:=true;

DBGrid1.Columns.Clear;
DBGrid2.Columns.Clear;

 N_Item:=0;
 for Nf:=0 to High(FieldNames) do
  begin
   for Ni:=0 to ZemlDM.ADOTable1.FieldCount-1 do
    if FieldNames[Nf]=ZemlDM.ADOTable1.Fields[Ni].FieldName
     then
      begin
       DBGrid1.Columns.Add;
       DBGrid1.Columns.Items[N_Item].Field:=ZemlDM.ADOTable1.FieldByName(FieldNames[Nf]);
       inc(N_Item);
      end;
  end;

 N_Item:=0;
 for Nf:=0 to High(FieldNames) do
  begin
   for Ni:=0 to ZemlDM.ADOTable2.FieldCount-1 do
    if FieldNames[Nf]=ZemlDM.ADOTable2.Fields[Ni].FieldName
     then
      begin
       DBGrid2.Columns.Add;
       DBGrid2.Columns.Items[N_Item].Field:=ZemlDM.ADOTable2.FieldByName(FieldNames[Nf]);
       inc(N_Item);
      end;
  end;
ZemlDM.ADOTable2.MasterFields:=TekMasterDetailFields;
end;


Будут еще вопросы ДОБРО ПОЖАЛОВАТЬ...
Заранее спасибо, если ответы по делу...



Страницы: 1 вся ветка

Текущий архив: 2004.11.07;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.036 c
1-1098192906
Dr. Genius
2004-10-19 17:35
2004.11.07
Неповрежденные части файлов с диска A:


3-1097053508
Belkova
2004-10-06 13:05
2004.11.07
запрос


1-1098647524
MegaBonus
2004-10-24 23:52
2004.11.07
Почему замедляется работа процедуры?


1-1098184658
Mishenka
2004-10-19 15:17
2004.11.07
Компонент как в Outlook Express?


1-1098305234
Артем Владимирович
2004-10-21 00:47
2004.11.07
Программное генерирование html-страницы и отображение в WebBrowse