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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2010, 13:29   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ни как не хочет работать нормально база,
Криворуких программистов компоненты не спасут.
"Никак не хочет" это значит ты что-то не так написал или спроектировал.
Для работы с акцессом компонент ADOQuery самое оно, а если у тебя что-то не работает выкладывай ошибки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.05.2010, 14:15   #12
Kolya29
Пользователь
 
Регистрация: 21.10.2009
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Криворуких программистов компоненты не спасут.
"Никак не хочет" это значит ты что-то не так написал или спроектировал.
Для работы с акцессом компонент ADOQuery самое оно, а если у тебя что-то не работает выкладывай ошибки.
я пока только учусь так что извиняюсь если что не так

Сейчас немного разобрался как сделать чтобы корректно выводились данные, но для этого для каждой таблицы в делфи надо добавлять ADOQuery и DataSource. Так и надо делать?

Последний раз редактировалось Kolya29; 31.05.2010 в 15:05.
Kolya29 вне форума Ответить с цитированием
Старый 31.05.2010, 15:00   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

ну вообще-то не обязательно.
для каждого "набора" данных да. Но не для каждой таблицы.
Обычно хватает одного-двух ADOQuery на все про все...
Ты для начала просто с одним поработай.
Потом научись запросы на SQL писать, и думаю тогда тебе хватит одного такого компонента на форме

P.S. я лично одним обхожусь...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.05.2010, 15:09   #14
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Код:
Сейчас немного разобрался как сделать чтобы корректно выводились данные, но для этого для каждой таблицы в делфи надо добавлять ADOQuery и DataSource. Так и надо делать?
Если за раз нужно отображать только 1 набор данных, то хватит
1 ADOQuery и 1 DataSource и всё. С помощью запросов можно и отображаь данные из разных таблиц, и менять/добавлять данные в любой таблице, и создавать новые таблициы, и менять состав полей таблиц, итд итп


//опоздал уже всё

Последний раз редактировалось vovk; 31.05.2010 в 15:12. Причина: опоздал
vovk вне форума Ответить с цитированием
Старый 31.05.2010, 15:55   #15
Kolya29
Пользователь
 
Регистрация: 21.10.2009
Сообщений: 22
По умолчанию

Задача у меня такая, на форме есть штук 15 DBLookupComboBox и в каждом надо отобразить список значений из таблиц справочников. И с одним ADOQuery и DataSource у меня не получалось. Т.к временем очень ограничен буду делать кучу ADOQuery и DataSource.
Kolya29 вне форума Ответить с цитированием
Старый 31.05.2010, 18:53   #16
Kolya29
Пользователь
 
Регистрация: 21.10.2009
Сообщений: 22
По умолчанию

Практически со всеми функциями разобрался, скоро на чистовую буду делать. Кому интересно можете посмотреть что получается и можно ли было в данном случае обойтись одним ADOQuery и DataSource?
Вложения
Тип файла: zip D7.zip (411.6 Кб, 11 просмотров)
Kolya29 вне форума Ответить с цитированием
Старый 07.06.2010, 17:39   #17
Nurlan77
 
Регистрация: 02.09.2009
Сообщений: 8
По умолчанию

Доброго времени суток!
У меня аналогичный вопрос...на счет кавычек

база - ms access

запрос:
Q := 'UPDATE [SIMS] SET ' +
'[SIMS].[DOG]="' + Edit1.Text + '", ' +
'WHERE [SIMS].[SIM]="' + ComboBox6.Text + '"';

Как вы заметили данные ставлю из Edit1. Если в Edit1 вписать типа:
- произвольный "текст с кавычками" (в этом случае не даже не добавляет "Insert")
- произвольный 'текст с апострофами' (добавит, но уже не удалит "DELETE" и не изменит "UPDATE")
- произвольный ''текст с парными апострофами''(добавит, но уже не удалит "DELETE" и не изменит "UPDATE")
- произвольный ""текст с парными кавычками""(добавит, но уже не удалит "DELETE" и не изменит "UPDATE")

не сработает - это естественно, в связи с кавычками в самом запросе

в мускуле это решалось так \" или так \'
долго искал, но решения в ms access не нашел...
пришлось временно запретить ввод кавычки и апострофа

как быть?

p.s. Кстати ошибка при любом запросе не только UPDATE

Последний раз редактировалось Nurlan77; 07.06.2010 в 17:53.
Nurlan77 вне форума Ответить с цитированием
Старый 07.06.2010, 18:07   #18
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Если написать
Код:
'[SIMS].[DOG]= ' + QuotedStr(Edit1.Text) +
то у меня нормально проходят любые данные,
а лучше просто использовать параметпы

Код:
'[SIMS].[DOG]= :dog_'
......
......
 ADOQuery1.Parameters.ParamByName('dds').Value:= Edit1.Text;
значение только желательно преобразовать к нужному виду, к примеру если поле DOG Integer, то
Код:
ADOQuery1.Parameters.ParamByName('dds').Value:= Strtoint(Edit1.Text);
vovk вне форума Ответить с цитированием
Старый 07.06.2010, 18:30   #19
Nurlan77
 
Регистрация: 02.09.2009
Сообщений: 8
По умолчанию

to vovk

Увы QuotedStr не добавит такую запись [sdfksfksdj"kjkjsdf'ds] а такую запись qqq он запишет как 'qqq' - что тоже не есть хорошо, при чем потом ее не удалить и не изменить...
Код:

'[SIMS].[DOG]= :dog_' - поясните пожалуйста это

......
......
 ADOQuery1.Parameters.ParamByName('dds').Value:= Edit1.Text; - и 'dds' тоже ?
+ еще вопрос...а как быть при необходимости заменить значение в большом количестве записей?

Последний раз редактировалось Nurlan77; 07.06.2010 в 18:43.
Nurlan77 вне форума Ответить с цитированием
Старый 07.06.2010, 18:45   #20
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

прекрастно добавляютмся любые записи, QuotedStr только ставит апострафы и всё.
Цитата:
'[SIMS].[ DOG]= : dog_' - поясните пожалуйста это

......
......
ADOQuery1.Parameters.ParamByName('d ds').Value:= Edit1.Text; - и 'dds' тоже ?
тут неправильно, поторопился...
Код:
'[SIMS].[DOG]= :dog_' просто параметр в тексте запроса.
.....
 ADOQuery1.Parameters.ParamByName('dog_').Value:= Edit1.Text; просто ошибка тут тоже должно быть dog_

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

Цитата:
+ еще вопрос...а как быть при необходимости заменить значение в большом количестве записей?
в Where указывайте условие под которое подходять эти записи

Последний раз редактировалось vovk; 07.06.2010 в 18:49.
vovk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с запросом с параметрами Альвента Microsoft Office Access 3 14.05.2010 09:46
Проблема с запросом! LizaVeta Общие вопросы Delphi 3 09.05.2010 07:07
Проблема с SQL запросом Bilargo БД в Delphi 4 27.11.2009 19:10
Помогите с запросом ADOQuery в Delphi 7 Wolverine БД в Delphi 21 25.05.2009 15:03
Проблема c запросом! SatS SQL, базы данных 6 24.01.2009 22:52