![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема c NULL полями [D6]
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 тут не причем!