Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2010, 13:55   #1
b.grigorev
Пользователь
 
Регистрация: 19.03.2009
Сообщений: 14
По умолчанию Работа с таблицами dbf

Здравствуйте! Я только недавно начал работать с БД и всего не могу еще понять.
Смысл какой: Есть БД на FoxPro, сама оболочка программы в досе. Программа сама по себе стара и неудобна, некоторые запросы не работают, кто эту прогу писал толком никто не помнит. У меня есть идея написать программу на Delphi и подключить базу FoxPro, в которой можно было добавлять данные удалять, делать поиск и т.д. Я взялся за изучение Delphi и за одно взялся за эту работу.
Я уже подключил одну из таблиц через ADO, могу просматривать. Но как добавлять так и не могу сообразить, с помощью стандартного компонента Navigator ничего не выходит, после добавления данных через Navigator вылетает ошибка: Произошли ошибки во время многошаговой операции. Проверьте значения всех состояний.

Я так понимаю запрос надо вручную писать, подскажите как это делается, я попробую может что и получиться???
b.grigorev вне форума Ответить с цитированием
Старый 15.04.2010, 14:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Да. Нужно по хорошему писать на SQL
Добавление - команда INSERT, редактирование UPDATE
Все они хорошо описаны в любой книге по SQL, достань, прочитай и поймешь

Тут этакое уже обсуждалось даже с примерами.
Да вот хотя бы:http://www.programmersforum.ru/showthread.php?t=53584
Пост Evgeniy26
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.04.2010, 15:39   #3
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

А может, если база не сильно большая, с FoxPro перегнать её в Access. Думаю потом работать с ней будет проще.
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 16.04.2010, 07:16   #4
b.grigorev
Пользователь
 
Регистрация: 19.03.2009
Сообщений: 14
По умолчанию

Спасибо за ответ!
сдаваться я не собираюсь и нашел книгу А.Я. Архангельского "Программирование в Delphi 7" в разделе Основы языка SQL и его использование в приложениях, я нашел упоминания о командах INSERT и UPDATE, но там все как то расплывчато - Вставка новой записи в таблицу осуществляется оператором Insert, который может иметь вид:
INSERT INTO <имя таблицы> (<список полей>| VALUES (<список эначений>|
В списке перечисляются только те поля, значения которых известны. Остальные могут опускаться. Для пропущенных полей значения берутся по умолчанию
(если значения по умолчанию заданы) или поля остаются пустыми.
Например: INSERT INTO Pers [Mum,Fara, Mam, Par, Sex) VALUES (12,'Иванов', 'Андрей', 'Андреевич', 'и')

я проанализировал это и то что было в написано в твоей ссылке, в общем что-то проясняется но не совсем четко еще, необходимо ли подключать ADOQuery? Если я его подключаю у меня появл. ошибка ADOQuery1: Missing SQL property.
Буду очень признателен если поможешь мне разобраться в моих начинаниях!
b.grigorev вне форума Ответить с цитированием
Старый 16.04.2010, 09:40   #5
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

Цитата:
ошибка ADOQuery1: Missing SQL property.
у компонента ADOQuery есть свойство SQL, которое перед активацией ADOQuery (ADOQuery1.Active := true) должно содержать сам запрос (текст)...
у тебя оно по всей видимости пустое, поэтому и вылетает ошибка...
совет поищи книгу в которой описано создание простого примера, многое станет понятней...
например, Фаронов В. Программирование баз данных (с названием мог обмануть)
maLoy*508 вне форума Ответить с цитированием
Старый 16.04.2010, 12:50   #6
b.grigorev
Пользователь
 
Регистрация: 19.03.2009
Сообщений: 14
По умолчанию

Цитата:
Сообщение от maLoy*508 Посмотреть сообщение
у компонента ADOQuery есть свойство SQL, которое перед активацией ADOQuery (ADOQuery1.Active := true) должно содержать сам запрос (текст)...
у тебя оно по всей видимости пустое, поэтому и вылетает ошибка...
совет поищи книгу в которой описано создание простого примера, многое станет понятней...
например, Фаронов В. Программирование баз данных (с названием мог обмануть)
Я очень признателен что вы мне помогаете разобраться в данном деле, но могу ли я и дальше рассчитывать на вашу помощь, я хотел бы что то конкретное увидеть. Не могли бы вы мне показать небольшой пример - а именно запрос на SQL, желательно по моей теме. Может быть после этого у меня будет меньше вопросов.
b.grigorev вне форума Ответить с цитированием
Старый 16.04.2010, 12:57   #7
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

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

но так же не стоит забывать правила форума:
Одна тема - один вопрос
и сразу используйте поиск, а уж потом задавайте вопрос

а помочь здесь всегда рады
maLoy*508 вне форума Ответить с цитированием
Старый 16.04.2010, 13:02   #8
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Код:
 if adoquery1.active
  then adoquery1.active:=false;
 adoquery1.sql.clear;
 adoquery1.sql.text:='INSERT INTO Pers [Mum,Fara, Mam, Par, Sex) VALUES (12,'Иванов', 'Андрей', 'Андреевич', 'и')';
 adoquery1.ExecSQL;
это пример
Тяжело быть бестолковым.....

Последний раз редактировалось Dark_Spirit; 16.04.2010 в 13:13.
Dark_Spirit вне форума Ответить с цитированием
Старый 16.04.2010, 13:48   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Dark_Spirit жуть..
sql.clear можно не делать, если дальше используете sql.text
но это не ошибка.


а вот ошибки
1) открыли квадратную скобку (надо круглую!)
2) нельзя писать неэкранируемые апосторофы!
Эта же строчка банально не пройдёт компиляцию!!!
Код:
 adoquery1.active:=false;
 adoquery1.sql.text:='INSERT INTO Pers (Mum,Fara, Mam, Par, Sex) VALUES (12,''Иванов'', ''Андрей'', ''Андреевич'', ''М'')';
 adoquery1.ExecSQL;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.04.2010, 13:56   #10
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Цитата:
Dark_Spirit жуть..
знаю, пример строки взял из:
Цитата:
Спасибо за ответ!
сдаваться я не собираюсь и нашел книгу А.Я. Архангельского "Программирование в Delphi 7" в разделе Основы языка SQL и его использование в приложениях, я нашел упоминания о командах INSERT и UPDATE, но там все как то расплывчато - Вставка новой записи в таблицу осуществляется оператором Insert, который может иметь вид:
INSERT INTO <имя таблицы> (<список полей>| VALUES (<список эначений>|
В списке перечисляются только те поля, значения которых известны. Остальные могут опускаться. Для пропущенных полей значения берутся по умолчанию
(если значения по умолчанию заданы) или поля остаются пустыми.
Например: INSERT INTO Pers [Mum,Fara, Mam, Par, Sex) VALUES (12,'Иванов', 'Андрей', 'Андреевич', 'и')

я проанализировал это и то что было в написано в твоей ссылке, в общем что-то проясняется но не совсем четко еще, необходимо ли подключать ADOQuery? Если я его подключаю у меня появл. ошибка ADOQuery1: Missing SQL property.
Буду очень признателен если поможешь мне разобраться в моих начинаниях!
ничего не меняя.
Спасибо за замечание. На ошибках учатся
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с таблицами Petruha-nsk Общие вопросы C/C++ 2 26.04.2009 13:31
Копирование записей между таблицами DBF ИВэТэшка Помощь студентам 4 22.03.2009 10:43
Работа с таблицами в DBF ИВэТэшка БД в Delphi 1 20.03.2009 20:50
Работа с таблицами БД Rusl92 БД в Delphi 4 10.04.2008 16:58
работа с таблицами Sexyprogrammist Общие вопросы Delphi 1 15.06.2007 01:00