С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/26: Рейтинг темы: голосов - 26, средняя оценка - 4.77
69 / 69 / 43
Регистрация: 26.01.2011
Сообщений: 160
1

DBMemo

20.02.2011, 15:58. Показов 5190. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

У меня проблема возникла с DBMemo: данные в нем не редактируются, как будто ReadOnly в true выставлен, хотя проверял, всё норм. Данные в него и в остальные компоненты (DBEdit_ы и DBComBox_ы) отбираются (отбор через SQL) и во всех остальных можно редактировать. При этом, если в запросе ничего неотобрано, т.е. когда пусто, то можно. К свойству ReadOnly вообще в проге не прикасался (Enabled тоже не трогал), а что могло повлиять в голову и не приходит.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2011, 15:58
Ответы с готовыми решениями:

DBMemo
Доброго вермени суток, уважаемые форумчани. У меня к вам такой вопрос: Возможно ли и если да как...

DbMemo
Можно ли в dbmemo вывести первую запись из dbgrid? а также по кнопке ,она переходила на вторую...

Запись в DBMemo
доброго времени суток. подскажите мне такой вопрос. в DBMemo из бд у меня записан текст. вопрос:...

Из DbMemo в Word
Всем добрый день! Недавно начал разрабатывать электронный архив документов и сейчас столкнулся с...

8
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
20.02.2011, 17:30 2
Какого типа поле Вы связываете с DBMemo. Какая СУБД?
0
69 / 69 / 43
Регистрация: 26.01.2011
Сообщений: 160
20.02.2011, 19:57  [ТС] 3
СУБД MSSQL SERVER 2000, тип поля text.

Я нашел проблему, только незнаю почему так получается. Короче в SQL запросе я использую слияние (UNION ALL):
Delphi
1
2
3
4
        Form1.ADOQuery1.SQL.Add('SELECT a.id,a.modify,a.surname,a.name,a.patronymic,a.birth,a.adress,a.phone_number,a.expanded_comment,b.standard_note FROM subscriber a INNER JOIN note b ON a.standard_note=b.id AND a.phone_number=');
        Form1.ADOQuery1.SQL.Add(#39+Form1.Edit1.Text+#39+' UNION ALL ');
        Form1.ADOQuery1.SQL.Add('SELECT b.id,b.modify,b.surname,b.name,b.patronymic,b.birth,b.adress,b.phone_number,b.expanded_comment, CASE WHEN b.standard_note IS NULL THEN cast(NULL as char(16)) END');
        Form1.ADOQuery1.SQL.Add('FROM subscriber b WHERE b.standard_note IS NULL AND b.phone_number ='+#39+Form1.Edit1.Text+#39+' ORDER BY 3,4,5');
Несмотря на то, что он вроде как правильный (количество столбцов одинаково, все одного типа), я даже на всяк случай щас всем столбцам второго запроса свои псевдонимы сделал (безрезультатно).
Короче видать почему-то SQLServer считает что a.expanded_comment и b.expanded_comment разного типа. Дибилизм, со всеми остальными всё норм, а этот...
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
21.02.2011, 11:19 4
А Вы попробуйте принудительно типы в запросе привести к одному типу с помощью функции cast.
В запросе там, где у Вас
a.expanded_comment
используйте
cast(a.expanded_comment as <здесь явное описание типа результирующего поля>)
Ну, и тоже самое с b.expanded_comment
0
69 / 69 / 43
Регистрация: 26.01.2011
Сообщений: 160
21.02.2011, 23:22  [ТС] 5
SAMZ, спасибо, это тоже пробовал, также безрезультатно.

Запрос писал такой, на всяк случай:

SQL
1
2
3
4
5
6
7
8
SELECT     a.id, a.modify, a.surname, a.name, a.patronymic, a.birth, a.adress, a.phone_number, CAST(a.expanded_comment AS text) AS ex1, c.standard_note
FROM         subscriber a INNER JOIN
                      note c ON a.standard_note = c.id AND a.phone_number = '4545454'
UNION ALL
SELECT     b.id, b.modify, b.surname, b.name, b.patronymic, b.birth, b.adress, b.phone_number, CAST(b.expanded_comment AS text), 
                      CASE WHEN b.standard_note IS NULL THEN CAST(NULL AS CHAR(16)) END
FROM         subscriber b
WHERE     (b.standard_note IS NULL) AND b.phone_number = '4545454'
Короче я решил забить на слияние. Хотел просто сделать: хочешь выбирай и тогда заносим id из другой таблицы, хочешь не выбирай и тогда null (таблица абонентов, а другая таблица примечаний, типа к какой группе он относится (друзья, родственники и т.п.)). Ну а поскольку есть null, то в 1-ом запросе отберутся только те, у кого есть соответствие во 2-ой таблице, а надо же ещё не забыть и про тех у кого null. Ну и как это без слияния сделать я не знаю (думаю и нельзя).
В итоге, как сказал щас, забил на это, решил пусть по умолчанию все в группу "остальное" добавляются.

Но с этим всё же надо будет разобраться попозже, пусть оно и невозможно это реализовать, но уж точно это знать.
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
22.02.2011, 06:27 6
Вас не смущает то, что в первом запросе извлечение
SQL
1
CAST(a.expanded_comment AS text) AS ex1
а во втором
SQL
1
CAST(b.expanded_comment AS text),
без алиаса
0
69 / 69 / 43
Регистрация: 26.01.2011
Сообщений: 160
22.02.2011, 11:37  [ТС] 7
И с псевдонимом у второго тоже писал. У меня просто в книжке написано, что имена столбцов и псевдонимы должны быть определены в 1-ой инструкции, а во второй просто чтобы их было столько же, в аналогичном порядке и типы соответствовали (ну и в примере у них во второй инструкции псевдоним не указывается), поэтому здесь такой запрос привел.
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
22.02.2011, 17:27 8
Посмотрел еще раз на Ваш запрос и подумал, а он в принципе может быть редактиремым? Вы через Union вытаскиваете под один алиас разные поля. А редактировать что?
0
69 / 69 / 43
Регистрация: 26.01.2011
Сообщений: 160
22.02.2011, 23:10  [ТС] 9
Я не особо понял что вы имеете ввиду, но если я в 1-ой инструкции например у a.surname задаю псевдоним: a.surname AS sur, а во 2-ой нет, т.е. так и оставляю b.surname (у surname тип char(15)), то это поле попрежнему редактируется, а текстовое попрежнему нет.
0
22.02.2011, 23:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2011, 23:10
Помогаю со студенческими работами здесь

Печать из DbMemo
Ребят, как с DBMemo сделать печать?

DBmemo редактирование
Доброе время суток. Недавно столкнулся с таким моментом. Я программно отключаю dbedit от базы...

DBMemo и ADOTable
DBMemo связано с ADOTable, все нормально выводится из базы.. но если редактирую текст в DBMemo, то...

Вопрос о DBmemo.
У меня есть база данных Problems.mdb Access 2003 id, Проблемы, Статус. Значения id= 1, 2, 3, 4 и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru