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

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

Ошибка при копировании записи. [D6, Access]


NickMan ©   (2005-07-22 13:32:00) 

Хочу скопировать записи из одной базы в другую в другою.
Таблицы абсолютно идентичны.
Почему выдает ошибку «Invalid variant type conversion»?

AdoTable1.First;
AdoTable2.First;
While not (adotable1.Eof) do
 Begin
 ADOTable2.AppendRecord([adotable1.Fields[1].AsVariant,
 adotable1.Fields[2].AsVariant,NewData]);
 End;


alex_***   (2005-07-22 17:20:00) [1]

INSERT INTO ... SELECT ... FROM ..


Johnmen   (2005-07-22 16:36:00) [2]

А-а-а... Те же проблемы, что и
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1122018110&n=1
см. пост №1, второе предложение.


msguns   (2005-07-22 16:36:00) [3]

Тебе люди-то правильно говорят: не строй заборы из всех этих adotable.Fields.AsString, а сделай в цикле запрос на вставку и выполни его.


NickMan   (2005-07-22 16:31:00) [4]

Нашел в чем дело :

ADOTable2.AppendRecord([ adotable1.Fields[0].AsVariant,adotable1.Fields[1].AsVariant,
adotable1.Fields[2].AsVariant,adotable1.Fields[3].AsVariant]);


Digitman   (2005-07-22 16:14:00) [5]


> NickMan   (22.07.05 16:07) [11]


врешь.

пока ты не толкнул эту строчку на пошаговое выполнение, исключения ты не получишь.

зато будешь как минимум иметь возможность просмотреть типы и значения всех вариантов, участвующих параметрами в этой строчке.


NickMan   (2005-07-22 16:07:00) [6]

Ну а что встроенный отладчик?
вываливает Debuger exception notification на строчке ADOTable2.AppendRecord и все.


Digitman   (2005-07-22 15:55:00) [7]


> NickMan   (22.07.05 15:33) [9]


встроенный отладчик - он для Пушкина был писан ?


NickMan   (2005-07-22 15:33:00) [8]

>> имеем ввиду, что ты лукавишь насчет "Таблицы абсолютно идентичны"

я просто сделал копию базы, и в аксесе удалил все записи.

>> Ну не только это, но и ВСЕ ПОЛЯ, а в коде одно поле.

Ну на самом деле там 35 полей, я просто не переписывал всю комманду Append чтобы бы форум не загромождать. Но даже когда я для  теста оставил три все равно не работает.


Anatoly Podgoretsky   (2005-07-22 14:50:00) [9]

Ну не только это, но и ВСЕ ПОЛЯ, а в коде одно поле.


Digitman   (2005-07-22 14:46:00) [10]


> Или вы что-то другое имеете ввиду?


имеем ввиду, что ты лукавишь насчет "Таблицы абсолютно идентичны"


NickMan   (2005-07-22 14:01:00) [11]

Все поля текстовые.
Или вы что-то другое имеете ввиду?


Anatoly Podgoretsky   (2005-07-22 13:58:00) [12]

Очень долго будем распрашивать про структуру таблиц.


NickMan   (2005-07-22 13:50:00) [13]

так тоже не работает

ADOTable2.AppendRecord([adotable1.Fields[1].AsVariant,
adotable1.Fields[2].AsVariant,adotable1.Fields[3].AsVariant]);


alex_***   (2005-07-22 13:49:00) [14]

запросом перекидывай


NickMan   (2005-07-22 13:46:00) [15]

>> а это зачем ?
убрал.
>> это что такое ?
var
newdata: string
...
newdata:=RestString(adotable1.Fields[3].Text);

где RestString -
function RestString(a: string) : string;

тип у третьего поля текстовый


Digitman   (2005-07-22 13:38:00) [16]


> AdoTable2.First;


а это зачем ?


> NewData


это что такое ? откуда взялось, как объявлено, где и как иниц-ся ?


Наверх

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