Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление записей в несколько связанных таблиц, ADO (Access) 
:(
    Опции темы
Neighbour
Дата 1.4.2009, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Добренького всем времени суток.

Пишу по работе приблуду, чтоб  кадастровые данные по участкам в населенном пункте хранились в одной базе.
А то разбросано все - координаты в одном файле, данные о владельце - в другом и т.д.
В общем, все получалось до определенного момента. Вручную загнанные в Access данные нормально отображаются,
Просмотреть, поискать можно. Вот проблемка возникла при попытке пополнить БД из приложения. Функция "Импорт обменного файла". Обменный файл - это структурированный текстовый файл специальный со всей кадастровой информацией и я хотел функцию добавления информации из обменного файла в БД сделать. Ошибки выдает. Я в БД вообще не силен. Равно как и в программировании вообще. smile Инфу в переменные из обменника считывает, а в базу добавлять не хочет - ругается. 

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



Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  GisForZemCad.zip 44,72 Kb
PM MAIL   Вверх
Neighbour
Дата 2.4.2009, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Может можно каким-либо образом напрямую в БД добавлять данные, не через ADOTable Append'ом?
PM MAIL   Вверх
Kbl4AH
Дата 3.4.2009, 07:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(Neighbour @  2.4.2009,  20:27 Найти цитируемый пост)
Может можно каким-либо образом напрямую в БД добавлять данные, не через ADOTable Append'ом?

запросом 
Код

insert into table ...

PM MAIL ICQ   Вверх
Neighbour
Дата 4.4.2009, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Я уже понял, что не получалось добавить, потому чтов другом месте программы юзался adotable.Создал еще по одному для каждой таблицы. Но при попытке добавить выдает "Несоответствие типов данных в выражении условия отбора". Что за штука?

Вырубает в этом месте, т.е при самой первой попытке добавить запись:

Код


          GeomForAdd.Post;
       



Процедура полностью:

Код


procedure TForm1.Button3Click(Sender: TObject);
var
i: integer;
begin
try
    UchForAdd.Open;
    GeomForAdd.Open;
    FizForAdd.Open;
    for i:=0 to quantity do
        begin
          GeomForAdd.Append;
          GeomForAdd['CadastrNomer']:=CadNum;
          GeomForAdd['NomerTochki']:=Coordinates[i,0];
          GeomForAdd['X']:=Coordinates[i,1];
          GeomForAdd['Y']:=Coordinates[i,2];
          GeomForAdd.Post;
        end;
    Uch.Append;
      UchForAdd['INNVladeltsa']:=StrToInt(Inn);
      UchForAdd['CadastrNomer']:=StrToInt(CadNum);
      UchForAdd['KodUKCVZ']:=CelIsp;
      UchForAdd['GASeria']:=GASer;
      UchForAdd['GANomer']:=StrToInt(GANum);
      UchForAdd['DenejnayaOcenka']:=StrToFloat(DenOc);
      UchForAdd['AdrUlitsa']:=AdrUl;
      UchForAdd['AdrNomDoma']:=StrToInt(AdrDom);
      UchForAdd['AdrNomKvartiry']:=StrToInt(AdrKvar);
      UchForAdd['AdrKorpus']:=AdrCorp;
      UchForAdd['Ploshad']:=StrToFloat(Plosh);
    FizForAdd.Append;
      FizForAdd['INN']:=StrToInt(Inn);
      FizForAdd['Familia']:=Fam;
      FizForAdd['Imia']:=Im;
      FizForAdd['Otchestvo']:=Otch;
      FizForAdd['PasportSeria']:=PassSer;
      FizForAdd['PasportNomer']:=PassNum;
    UchForAdd.Post;
    FizForAdd.Post;
except
  on E: Exception do ShowMessage(E.Message);
end;
end;


PM MAIL   Вверх
GraNit
Дата 19.8.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 20.10.2007

Репутация: нет
Всего: нет



Присоединюсь к вопросу, т.е. та же проблема. Только ошибка другая.
При попытке записать данные в базу через ADOTable1.Post тсранно ругается, а именно: '[Microsoft][Драйвер ODBC Paradox] В операции должен использоваться обновляемый запрос'. Это он меня на SQL отправляет?
PM MAIL   Вверх
defmzk
Дата 20.8.2009, 03:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 16.7.2009

Репутация: нет
Всего: нет



а если использовать adoquery ?

Это сообщение отредактировал(а) defmzk - 20.8.2009, 03:51
PM MAIL   Вверх
GraNit
Дата 20.8.2009, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 20.10.2007

Репутация: нет
Всего: нет



Разобрался!
Пришлось погуглить. Но вот здесь: http://forum.sources.ru/index.php?showtopic=264456 все сказано.
Для ленивых могу сказать, почему-то требуется обязательно ключевое поле.
Добавил в свою базу (paradox) поле ID аутоинкрементальное и все заработало. Записи стали нормально добавляться.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1144 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.