Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конвертация данных 
:(
    Опции темы
Rodman
Дата 12.2.2011, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



Дароф

Вот надо создать и заполнить таблицу dbf... пробую так
Код

with TTable.Create(nil) do
  begin
    DatabaseName  := 'c:\';  (* alias *)
    TableName     := 'test.dbf';
    TableType     := ttDBase;
    with FieldDefs do
    begin
      Add('Id', ftAutoInc, 0, True);
      Add('idstation', ftInteger);
      Add('idsubstanc', ftInteger);
      Add('iddate', ftDate);
      Add('idtime', ftTime);
      Add('idvalue', ftFloat);
    end;
    CreateTable;
   end;
   ADOQuery1.SQL.Clear;// подключился через ODBC
   ADOQuery1.SQL.Add('INSERT INTO c:\test.dbf VALUES (`1`, `2`, `1`, `2000-01-17`, `07:00:00`, `0`)');
   ADOQuery1.ExecSQL;

после последней строки выдает:
---------------------------
Debugger Exception Notification
---------------------------
Project Conv.exe raised exception class EOleException with message 'Неправильно определен объект Parameter. Предоставлены несовместимые или неполные сведения'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------

в чем трабла?

Сенкс
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Данкинг
Дата 12.2.2011, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Так если поля числовые (Integer), как ты пытаешься вставить строковое значение  ('2') ? 
Вот аналогичный запрос на фоксе (поле KOLVO - числовое) вызывает ошибку:
user posted image

И ещё: автоинкремент появился в фоксе 8.0. Не знаю, как работать с DBF через именно ODBC, но для отлова глюка лучше автоинкремент пока не использовать.




--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Rodman
Дата 12.2.2011, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



Код

ADOQuery1.SQL.Add('INSERT INTO c:\test.dbf VALUES (1, 2, 1, 2000-01-17, 07:00:00, 0)');
тот же самый прикол...

Добавлено через 2 минуты и 34 секунды
Код

   ADOQuery1.SQL.Clear;
   //ADOQuery1.SQL.Add('INSERT INTO c:\test.dbf VALUES (1, 2, 1, 2000-01-17, 07:00:00, 0)');
   ADOQuery1.SQL.Add('INSERT INTO c:\test.dbf VALUES (:Prm1, :Prm2, :Prm3, :Prm4, :Prm5)');
   ADOQuery1.Parameters.ParamByName('Prm1').Value:=2;
   ADOQuery1.Parameters.ParamByName('Prm2').Value:=1;
   ADOQuery1.Parameters.ParamByName('Prm3').Value:='2000-01-17';
   ADOQuery1.Parameters.ParamByName('Prm4').Value:='07:00:00';
   ADOQuery1.Parameters.ParamByName('Prm5').Value:=0;
   ADOQuery1.ExecSQL;
тот же прикол

Добавлено через 14 минут и 30 секунд
вылечил. он на id ругался... не воспринимал значения для него
Код

   ADOQuery1.SQL.Clear;
   //ADOQuery1.SQL.Add('INSERT INTO c:\test.dbf  VALUES (1, 2, 1, 2000-01-17, 07:00:00, 0)');
   ADOQuery1.SQL.Add('INSERT INTO test.dbf (idstation, idsubstanc, iddate, idtime, idvalue) VALUES (:Prm1, :Prm2, :Prm3, :Prm4, :Prm5)');
   ADOQuery1.Parameters.ParamByName('Prm1').Value:=2;
   ADOQuery1.Parameters.ParamByName('Prm2').Value:=1;
   ADOQuery1.Parameters.ParamByName('Prm3').Value:='2000-01-17';
   ADOQuery1.Parameters.ParamByName('Prm4').Value:='07:00:00';
   ADOQuery1.Parameters.ParamByName('Prm5').Value:=0;
   ADOQuery1.ExecSQL;

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Данкинг
Дата 12.2.2011, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Rodman @  12.2.2011,  22:59 Найти цитируемый пост)
вылечил. он на id ругался... не воспринимал значения для него

Ну, я же говорю, с автоинкрементом проблемы могут быть. На фоксе при попытке вставить значение в автоинкрементное поле вылезает ошибка "Field [] is read-only". smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


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

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

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


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

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


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

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


 




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


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

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