Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: CMSFlexGrid и CRecordSet  (Прочитано 20214 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« : 13-10-2004 20:21 » 

Долблюсь!!!! Я шокирован!

Не могу по человечьи связать этих!

Сделал через ж - после выполнения запроса, копирую из рекордсета записи ПО КЛЕТКЕ (то есть перебирая строки и столбцы) в ячейки грида.

Но тут засада -

...
CRecordSet rset(&base);
...
rset.Requery();
rset.MoveFirst();//перемещаемся на первую запись

rset.GetFieldValue((short)0,var);//читаем первое поле первой записи

Дело в том, что первая строка не читается - вместо неё читается вторая.

после
rset.MoveNext();//вторая строка

читаем вторую строку - она (и все далее читаются правильно).
Но как первую-то строку получить?


ЗЫ - только что вдруг стукнуло в голову провести такой эксперимент -

вызываем ТОЛЬКО
rset.Requery();
(без rset.MoveFirs) тогда:

rset.GetFieldValue((short)0,var);//ЧИТАЕТ ПЕРВУЮ ЗАПИСЬ - как надо,

далее
rset.MoveNext();//вторая строка
исправно работает

------------
Но, блин, чувствую, что опять через ж... Подскажите как бороть правильно? В сети не могу найти пример.

Также и для связи рекордсета с гридом - чтобы там автоматом отобразилось то, что в рекордсете?
Записан

Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #1 : 14-10-2004 11:05 » 

Алексей1153,

chto za problema s movenext - s letu skazat ne mogu, nado posmotret.

A wot esli ti ispolzuesh DataGrid, to tam wse samo w ruki prigaet Отлично  Esli hochesh - ja tebe swoj primerchik sbroshu .
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 14-10-2004 16:28 » 

Malaja, хаааачуууу! Улыбаюсь

alex1153@yandex.ru

заранее пасиба
Записан

Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #3 : 15-10-2004 08:21 » 

Алексей1153,

tolko chto otprawila mail s dwumja primerami. Posmotri.
Udachi! Отлично
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 15-10-2004 15:54 » 

Malaja, спасибо за примеры, щас посмотрю

Кстати - отдельное спасибо за комментарии - я бы с ума сошёл транслитом столько текста Улыбаюсь)
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 15-10-2004 16:24 » 

де жа вю! Улыбаюсь Где-то я уже видел это загадочное "Abbrechen" Улыбаюсь  (Джон, Ага )

запустить проекты не удалось, пишет - не находит сервера для ado. Но, похоже, это неного не то... Мой проект использует Firebird 1.5 и Firebird ODBC Driver . А объект CRecordset у меня - не контрол, я его в проге создаю, поэтому ID у него нет, надо как-то через указатель связывать с гридом...

Malaja, а для DAO не подскажешь?..

ЗЫ всё равно спасибо Улыбаюсь
этот плюсик не за это, а вообще - давно уже пора Улыбаюсь
Записан

Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #6 : 18-10-2004 09:09 » 

Алексей1153,

Цитата

загадочное "Abbrechen"


eto "prepwat" - po-russki, nu izwini - ne wse nemezkie slowa wichistila  Отлично

Dalee uge serjezno :
Цитата

запустить проекты не удалось, пишет - не находит сервера для ado

u tebja service pack6 dlja studii ustanowlen?
Kogda ti dobawljal ADO - element, on bil w spiske?

 
Цитата

CRecordset у меня - не контрол, я его в проге создаю

no wed ti ge mogesh pomestit ego na formu, prosto sdelaj ego newidimim.
Ili posmotri wtoroj primer - tam ja etu erundu sozdaju programmno, a potom s nej i rabotaju. Pri etom posle sozdanija elementa wizowi m_ado.GetDlgCtrlID() - poluchish ego ID i swjagesh s etim ID twoj Grid (tolko eto nado delat w OnInitDialog(), chtobi k startu wse bilo gotowo).

Цитата

Firebird 1.5 и Firebird ODBC Driver

Ja ne znaju etih DB, no teoreticheski dolgno bit wse rawno - ti nastraiwaesh DB w start -> settings -> control panel -> administrative tool -> ODBC -> system DSN.
potom prowerjaesh swjaz s db, a zatem w string w programme wnosish sootwetstwujushuju infu.

Цитата

а для DAO

etogo u menja na rabochem kompe net - nado budet doma w starih projektah posmotret.

I spasibo za pljusik - horoshee wsegda raduet ! Mjau Отлично
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #7 : 18-10-2004 16:11 » 

Цитата

u tebja service pack6 dlja studii ustanowlen?

- что за зверь - не в курсе... Да ну их эти паки, никогда не ставлю  Улыбаюсь

Цитата

Kogda ti dobawljal ADO - element, on bil w spiske?

да они, в принципе, автоматом добавились - зелёная и красная пимпочки появились на палитре. Пака в списке - не видел

Цитата

no wed ti ge mogesh pomestit ego na formu, prosto sdelaj ego newidimim.

Ирин, так я же говорю - это не контрол, это класс MFC , описанный в "Afxbd.h" библиотеки MFC. ID у него нету, могу пользоваться только его адресом в памяти...

Цитата

Ja ne znaju etih DB, no teoreticheski dolgno bit wse rawno - ti nastraiwaesh DB w start -> settings -> control panel -> administrative tool -> ODBC -> system DSN.

ошибаешься Улыбаюсь , никогда я эту опция не использовал - я прямо в реестре DSN описываю из программы и вся недолга...

А насколько я понял, ado и dao - это разные технологии доступа к базам, dao - более старая и проверенная и надёжная, ado - поновее, но знающие люди посоветовали мне DAO.

Так что надо как-то указатель сета в грид засунуть либо наоборот - всё программно надо, а не при проектировании формы. Кроме того - тот же ADO-элемент, будучи на форме, ещё в редакторе ресурсов уже лезет пошшупать базу данных, а зачем мне это?..
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 18-10-2004 18:46 » 

Во, кстати - нашёл способ увеличить быстродействие, и как только раньше не пришло :

заключаем работу с гридом в "скобки":

m_msfgridMAINGRID.SetRedraw(FALSE);
...
...
m_msfgridMAINGRID.SetRedraw(TRUE);

и лепота приходит Улыбаюсь
Записан

lapulya
Молодой специалист

ru
Offline Offline

« Ответ #9 : 19-10-2004 06:53 » 

Алексей1153, так нужно делать с любым контролом, который при каждой операции перерисовывает свое содержимое, при проведении с ним энного количества процедур (самый типичный пример вставка данных в лист бокс)
Записан

С уважением Lapulya
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #10 : 19-10-2004 07:58 » 

Алексей1153,

service pack 6 - eto to, chto ustranjaet bugi w ishodnoj wersii studii. Esli twoja kontora ispolzuet studiju, to u nee i eto dolgno bit awtomatom (esli firma jawljaetsja kundom microsofta, to wse service packi k produktu ona poluchaet awtomatom). Pack ti widish togda, kogda pitaesh'sja dobawit element - tam w spiske stoit imja elementa, a w skobkah - pack. (Microsoft ADO Data Control 6.0 (SP4)) U menja, prawda, stoit sp4, a ne sp6 - stranno, hotja ja i sp6 ustanawliwala.

Po powodu CRecordseta ja neprawilno tebja ponjala - izwini :oops:  Ja dumala, chto tebe wse rawno, chto ispolzowat, poetomu opisala tebe rabotu s ADO - elementom. W Msdn stoit :

Код:

Note   If you are working with the Data Access Objects )DAO: classes rather than the Open Database Connectivity )ODBC: classes, use class CDaoRecordset instead. For more information, see the articleDatabase Topics )General: and the articleDAO and MFC. Both articles are in Visual C++ Programmer’s Guide.


Ado i Dao - eto dejstwitelno 2 raznie metodiki raboti s DB, prichem Ado nowee.
Primer dlja Dao wchera s letu ne nashla, budu segodnja prizelno iskat (wchera uge sil ne bilo - nado bilo rebenku slishkom mnogo objasnjat Я шокирован! )
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #11 : 19-10-2004 11:39 » 

Алексей1153,

wopros - u tebja uchebnik Kruglinskogo est? Esli da - posmotri primer ex31a-d.
Esli net - skagi, ja tebe prishlju, tam primer raboti s CRecordsetom (prawda, bez grida Жаль ) No tebe po-ljubomu, esli ne rabotaesh s Ado - elementom, pridetsja ljuboj recordset k gridu ruchkami prikruchiwat.  Вот такой я вот
Posmotri na http://www.firststeps.ru/ - tam mogut bit kakie-to primerchiki, a ja eshe doma poishu.
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #12 : 19-10-2004 17:35 » 

спасибо что не бросаешь дело просто так Улыбаюсь  Приятно, чесслово Улыбаюсь

Насчёт Дэвида Дж Круглински - была книга, но укатила в Узбекистан Ага .  Так что присылай пример
Записан

Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #13 : 20-10-2004 07:23 » 

Алексей1153,

wse jasno - ona ljubit poputeshestwowat  Ага
Perwoe - primerchiki poslala po wisheukazannomu adresu.
Wtoroe - primeri po dao u menja tolko na VB ;-( (moj ochen starij proekt).
Dalee - poishi w seti knigki tipa mfc in 24 hours ili c++ in 24 hours - w odnoj iz nih ja widela primeri ado i dao bez primenenija elementa.

Цитата

Так что надо как-то указатель сета в грид засунуть либо наоборот - всё программно надо, а не при проектировании формы. Кроме того - тот же ADO-элемент, будучи на форме, ещё в редакторе ресурсов уже лезет пошшупать базу данных, а зачем мне это?..


Tak organizowiwaj wse eto programmno - w odnom iz perwih dwuh primerow, kotorie ja tebe poslala, est primer sozdanija elementa programmnim putem. Potom - poluchish ego ID i swjagesh ego s gridom (ja napisala funkziju poluchenija ID gde-to wishe). Po-moemu, eto samoe prostoe reshenie - bit w meru leniwim i ispolzowat gotowoe wmesto togo, chtobi ispolzowat CRecordset, a potom otdelno imet golownuju bol po chitiwaniju dannih.
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #14 : 20-10-2004 16:16 » 

нет, похоже эти проекты тоже не помогут... А кроме того - ох уж этот немецкий - студия не понимает... и проекты не компилятся

Ирин , спасибо за всё , я думаю я остановлюсь на том, что сейчас у меня - стало довольно приемлимо. Пока, по крайней мере Улыбаюсь
Записан

Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #15 : 21-10-2004 07:28 » 

Алексей1153,

izwini, ja ne gljanula, chto tam wse kommentarii na nemezkom  :oops: sama elektronnaja knigka na anglijskom, da k tomu ge ja kak-to awtomatom tolko na kod posmotrela - mogno li ego primenit, a wse ostalnoe propustila.

No wse rawno ne pojmu, pochemu projekti ne kompilirujutsja - u menja wse bilo ok (ja snachala na swoem kompe poprobowala), a neprawilnie kommentarii ni na chto ne wlijajut.
Eshe raz izwini  :oops:
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #16 : 21-10-2004 13:49 » 

да нестрашно, не за что извиняться-то Улыбаюсь

Я нашёл выход, который меня устроил Улыбаюсь
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #17 : 23-10-2004 16:30 » 

как определить максимальную ширину текста в столбце грида (в пикселах) ?
 - чтобы потом сделать соответствующую ширину колонки
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #18 : 29-10-2004 12:57 » new

ещё такие вопросы:

1)
как пользоваться
void MSFlexGrid::AddItem(LPCTSTR Item, const VARIANT& index)

2)
при перерисовке грид МИГАЕТ! Причём новые строки в таблице у меня в проге могут добавляться до 2 раз в секунду - мерцание очень нехорошо.

Как заставить грид рисовать на контекст в память, а потом копировать разом на экран?
Или - так: как устранить мерцание?
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines