Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема c NULL полями [D6]


Страницы:   1 2

Gore ©   (2008-04-14 11:26:00) 

Есть два поля в таблице DBF которые обозначены NULL делфи не может открыть эту таблицу. Подскажите что можно сделать.


sniknik   (2008-04-15 13:09:00) [1]

> да мне без разницы что было писать лишь бы сообщение выдал при ошибке
тогда вообще ничего не пиши..., а в ошибке "по умолчанию" скрытой твоим кодом часто не только просто сообщение о том что она произошла, а еще и ее причина.

вообще за такой идиотский код с закрытием оригинальных и подстановкой "пустышек" (по смыслу), в некоторых местах увольняют...

> от писанный кодв чем ошибка?
сказано еще в Anatoly Podgoretsky [11], [13]
причина не измен6иться сколько бессмысленного кода не приводи.

> app если такой умный скажи где ошибка и закроем тогда тему сразу
если ты такой глупый то без толку


Gore   (2008-04-15 13:05:00) [2]

Удалено модератором
Примечание: Зачем ждать?


app   (2008-04-15 12:39:00) [3]

> Gore  (15.04.2008 12:18:30)  [30]

Хватит замусоривать конференцию.


Gore   (2008-04-15 12:18:00) [4]


var
i,j,z,k:integer;//счетчики
DN,DC:integer;//Диапазон значений
BS:string;//Текущая таблица
Dir:string;//Путь к базе экспорта
lCount:integer;//Количество столбцов
begin
//начало и конец диапазона
DN:=strtoint(bsSkinSpinEdit1.Text);
DC:=strtoint(bsSkinSpinEdit2.Text);
//начало и конец диапазона

//Проверка введеного диапазона
if DN>DC then
MSG.MessageDlg('Диапазон был указан неверно',mtInformation,[mbOk], 0)
else
//Диапазон верен продолжаем работу
//Проверка на таблицы
if SPS.Items.Count=0 then
MSG.MessageDlg('Не указанна ни одна таблица!',mtInformation,[mbOk], 0)
else
//список таблиц имеется
begin
//Циклично коннектимся к каждой их таблиц в списке
  for i:=0 to SpS.Items.Count-1 do
  begin
   BS:=SPS.Items.Strings[i];//текущая таблица
   //Коннектимся к таблице импорта
       try
        ImpTCon.Connected:=false;
        ImpTCon.DefaultDir:='NewData\';
        ImpTCon.Connected:=true;
        ImpT.Close;
        ImpT.FoxConnect:=ImpTCon;
        ImpT.SQL.Text:='Select * from '+BS;
        ImpT.Open;
       except
        MSG.MessageDlg('Не удалось подключиться к таблице!',mtInformation,[mbOk], 0);
        break;
       end;
   //Коннектимся к таблице импорта

   //Циклично прогоняем все таблицы экспорта
   //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//
     //Получаем путь к базам данных
     if Initdir.Text[Length(Initdir.Text)]<>'\'
     then  dir:=Initdir.Text+'\' else dir:=Initdir.Text;
     showmessage(dir);
   //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//
   //Для прогресса
     Val.MinValue:=DN-1;
     Val.MaxValue:=DC;
     Val.Value:=DN-1;
   //Для прогресса

     for j:=DN to DC do
      begin
     //Коннектимся к таблице экспорта
       try
        ExpTCon.Connected:=false;
        ExpTCon.DefaultDir:=Dir+inttostr(j)+'\'+LCDir.Text;
        ExpTCon.Connected:=true;
        ExpT.Close;
        ExpT.FoxConnect:=ExpTCon;
        ExpT.SQL.Text:='Select * from '+BS;
        ExpT.Open;
        //перебрасываем данные из одной таблицы в другую
         lCount := ExpT.FieldCount;
         ExpT.First;
         For z:=0 to ExpT.RecordCount-1 do
           Begin
            ImpT.Insert;
            for k:=0 to LCount-1 do
            if (not ExpT.Fields[k].IsNull)and(ExpT.Fields[k].CanModify) then
              ImpT.FieldByName(ExpT.Fields[k].FieldName).Value:=Expt.Fields[k].Value;
            ExpT.Next;
            ImpT.Post;
           end;
        Val.Value:=Val.Value+1;
       except
        MSG.MessageDlg('Не удалось подключиться к таблице!',mtInformation,[mbOk], 0);
        break;
       end;
     //Коннектимся к таблице экспорта если все произошло удачно
     end;
   //вырубаем таблицу импорта
   ImpT.Close;
  //Циклично прогоняем все таблицы экспорта    
  end;
//Циклично коннектимся к каждой их таблиц в списке
end;

end;

от писанный кодв чем ошибка?


Gore   (2008-04-15 12:00:00) [5]

да мне без разницы что было писать лишь бы сообщение выдал при ошибке


Palladin   (2008-04-15 11:42:00) [6]

открыл дверь, зашел, дошел до стены, споткнулся, упал, получил сотрясение моска и всем сказал "все успешно"


Gore   (2008-04-15 11:24:00) [7]

что не нравиться?


Игорь Шевченко   (2008-04-15 11:14:00) [8]


>   try
>                 ExpT.Open;
>                 ImpT.Last;
>                 ExpT.First;
>                except
>                  showmessage('Konnekt proshol uspechno');
>
>                  end;


в цитатник


Gore   (2008-04-15 11:11:00) [9]

да можно глючит ка ни в чем не бывало. Уже с 4-ми компонентами пытаюсь


ЮЮ   (2008-04-15 11:04:00) [10]

> try
>                ExpT.Open;
>                ImpT.Last;
>                ExpT.First;
>               except
>                 showmessage('Konnekt proshol uspechno')
> ;
>                 end;


И как при таком коде можно не добиться успешного коннекта? :)


Gore   (2008-04-15 09:23:00) [11]

сейчас начал по новой вскоре скину 3 вариант


Gore   (2008-04-15 09:22:00) [12]

тут два варианта и оба не пашут


Gore   (2008-04-15 09:22:00) [13]

var
 x:integer;//Счетчик для цикла папок
 z:integer;//Счетчик таблиц
 i,j,lCount: Integer;
 Patch,TekN:string;
 PatchImp,PatchExp:string;
begin
Patch:=ApplicationPath;
if bsSkinSpinEdit1.Value<bsSkinSpinEdit2.Value then
Begin
memo3.Lines.Clear;
BsSkinGauge1.MinValue:=0;
BsSkinGauge1.MaxValue:=BsSKinListbox1.Items.Count-1;
BsSkinGauge1.Value:=BsSkinGauge1.MinValue;

for z:=0 to BsSKinListbox1.Items.Count-1 do
 begin
 //коннектимся к базе импорта
  bsSkinLabel1.Caption:=BsSKinListbox1.Items.Strings[z];
  ImpTC.Connected:=False;
  ImpTC.DefaultDir:='NewData\';
  ImpTC.Connected:=true;
//   ImpT.DatabaseName:='C:\NewData\';
  ImpT.SQL.Text:='Select * from '+BsSKinListbox1.Items.Strings[z];
  if Memo1.Lines.Strings[z]<>'' then
    ImpT.SQL.Text:=ImpT.SQL.Text+' '+Memo1.Lines.Strings[z];
  try
  ImpT.Open;
  except
     showmessage('Konnekt proshol uspechno');
  end;
      //Циклично коннектимся ко всем базам и берем инфу
      for x:=strtoint(bsSkinSpinEdit1.Text)
          to strtoint(bsSkinSpinEdit2.Text) do
             begin
               Tekn:=inttostr(x);
               ExpTC.Connected:=false;
               ExpTC.DefaultDir:=BsSkinEdit1.Text+'\'+Tekn+'\'+BsSkinEdit2.Text;
               ExpTC.Connected:=True;
               ExpT.SQL.Text:='Select * from '+BsSKinListbox1.Items.Strings[z]+' '+Memo1.Lines.Strings[z];
               memo3.Lines.add(ExpTC.DefaultDir);
               try
                ExpT.Open;
                ImpT.Last;
                ExpT.First;
               except
                 showmessage('Konnekt proshol uspechno');
                 end;
               lCount := ExpT.FieldCount;
                         For i:=0 to ExpT.RecordCount-1 do
                          Begin
                           ImpT.Insert;
                            for j:=0 to LCount-1 do
                               if (not ExpT.Fields[j].IsNull)and(ExpT.Fields[j].CanModify) then
                                     ImpT.FieldByName(ExpT.Fields[j].FieldName).Assign(ExpT.Fields[j]);
                           ExpT.Next;
                          end;
                ExpT.Close;
                Memo3.Lines.SaveToFile('Data.txt');
             end;
  BsSkinGauge1.Value:=BsSkinGauge1.Value+1;
 //Сохраняеми вырубаем базу импорта
  ImpT.Post;ImpT.Close;
 end;

{for x:=strtoint(bsSkinSpinEdit1.Text)
 to strtoint(bsSkinSpinEdit2.Text) do
 begin
 //Коннект к базе и перекачка
  PatchImp:=Patch+'NewData\';
  Tekn:=inttostr(x);
  PatchExp:=BsSkinEdit1.Text+Tekn+'\'+BsSkinEdit2.Text;
    //Коннект к списку таблиц
    for z:=0 to BsSKinListbox1.Items.Count-1 do
     begin
  ImpTC.Connected:=False;
  ImpTC.DefaultDir:=PatchImp;
  ImpTC.Connected:=true;
  ExpTC.Connected:=false;
  ExpTC.DefaultDir:=PatchExp;
  ExpTC.Connected:=True;
      bsSkinLabel1.Caption:=BsSKinListbox1.Items.Strings[z];
  ImpT.SQL.Text:='Select * from '+BsSKinListbox1.Items.Strings[z];
  ExpT.SQL.Text:='Select * from '+BsSKinListbox1.Items.Strings[z]+' '+Memo1.Lines.Strings[z];
//       ImpT.TableName:=PatchImp+BsSKinListbox1.Items.Strings[z];
//       ExpT.TableName:=PatchExp+BsSKinListbox1.Items.Strings[z];
      memo3.Lines.add(ExpTC.DefaultDir);
      try
      ImpT.Open;ExpT.Open;
       //Копируем записи из таблицы в таблицу
       if ExpT.RecordCount>0 then ExpT.First;
       if ImpT.RecordCount>0 then ImpT.Last;
        lCount := ExpT.FieldCount;
        For i:=1 to ExpT.RecordCount do
         Begin
          bsSkinLabel2.Caption:='Номер записи '+inttostr(i);
          ImpT.Insert;
          for j:=1 to LCount do
           if (not EXPT.Fields[j].IsNull) and (EXPT.Fields[j].CanModify) then
           ImpT.FieldByName(EXPT.Fields[j].FieldName).Assign(EXPT.Fields[j]);
          ExpT.Next;
         end;
      except
  if ExpT.RecordCount>0 then ExpT.First;
       if ImpT.RecordCount>0 then ImpT.Last;
        lCount := ExpT.FieldCount;
        For i:=1 to ExpT.RecordCount do
         Begin
          bsSkinLabel2.Caption:='Номер записи '+inttostr(i);
          ImpT.Insert;
          for j:=1 to LCount do
           if (not EXPT.Fields[j].IsNull) and (EXPT.Fields[j].CanModify) then
           ImpT.FieldByName(EXPT.Fields[j].FieldName).Assign(EXPT.Fields[j]);
          ExpT.Next;
         end;
      end;
      ImpT.Post;
//        if Impt.RecordCount>0 then ImpT.PackTable;
      ImpT.Close;ExpT.Close;
     end;
    //Коннект к списку таблиц
 //Коннект к базе и перекачка
 BsSkinGauge1.Value:=BsSkinGauge1.Value+1;
 end;
}
Memo3.Lines.SaveToFile('Data.txt');
MSG1.MessageDlg('Соединение данных прошло успешно!',mtInformation,[mbOk], 0);
end
else
MSG1.MessageDlg('Неверно укзан диапазон!',mtInformation,[mbOk], 0);


Gore   (2008-04-15 09:21:00) [14]

могу скинуть код если надо


Anatoly Podgoretsky   (2008-04-14 14:13:00) [15]

Нам погадать на ромашке?


Gore   (2008-04-14 14:00:00) [16]

Он мне просто подконнектится не дает убираю все ровно


Gore   (2008-04-14 13:59:00) [17]

В смысле?


Anatoly Podgoretsky   (2008-04-14 13:53:00) [18]

> Gore  (14.04.2008 13:49:14)  [14]

Это уже твоя ошибка


Gore   (2008-04-14 13:50:00) [19]

BDE работает ровно


Gore   (2008-04-14 13:49:00) [20]

с АДО глюк  Ругается на непредвиденную ошибку драйвера внешней базы данных (8961). и DE тут не причем!


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо