Алексей++
глобальный и пушистый
Глобальный модератор
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
|
|
« Ответ #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 .
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #2 : 14-10-2004 16:28 » |
|
Malaja, хаааачуууу! alex1153@yandex.ruзаранее пасиба
|
|
|
Записан
|
|
|
|
Malaja
|
|
« Ответ #3 : 15-10-2004 08:21 » |
|
Алексей1153, tolko chto otprawila mail s dwumja primerami. Posmotri. Udachi!
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #4 : 15-10-2004 15:54 » |
|
Malaja, спасибо за примеры, щас посмотрю Кстати - отдельное спасибо за комментарии - я бы с ума сошёл транслитом столько текста )
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #5 : 15-10-2004 16:24 » |
|
де жа вю! Где-то я уже видел это загадочное "Abbrechen" (Джон, ) запустить проекты не удалось, пишет - не находит сервера для ado. Но, похоже, это неного не то... Мой проект использует Firebird 1.5 и Firebird ODBC Driver . А объект CRecordset у меня - не контрол, я его в проге создаю, поэтому ID у него нет, надо как-то через указатель связывать с гридом... Malaja, а для DAO не подскажешь?.. ЗЫ всё равно спасибо этот плюсик не за это, а вообще - давно уже пора
|
|
|
Записан
|
|
|
|
Malaja
|
|
« Ответ #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
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
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-элемент, будучи на форме, ещё в редакторе ресурсов уже лезет пошшупать базу данных, а зачем мне это?..
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #8 : 18-10-2004 18:46 » |
|
Во, кстати - нашёл способ увеличить быстродействие, и как только раньше не пришло : заключаем работу с гридом в "скобки": m_msfgridMAINGRID.SetRedraw(FALSE); ... ... m_msfgridMAINGRID.SetRedraw(TRUE); и лепота приходит
|
|
|
Записан
|
|
|
|
lapulya
Молодой специалист
Offline
|
|
« Ответ #9 : 19-10-2004 06:53 » |
|
Алексей1153, так нужно делать с любым контролом, который при каждой операции перерисовывает свое содержимое, при проведении с ним энного количества процедур (самый типичный пример вставка данных в лист бокс)
|
|
|
Записан
|
С уважением Lapulya
|
|
|
Malaja
|
|
« Ответ #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
|
|
« Ответ #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.
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #12 : 19-10-2004 17:35 » |
|
спасибо что не бросаешь дело просто так Приятно, чесслово Насчёт Дэвида Дж Круглински - была книга, но укатила в Узбекистан . Так что присылай пример
|
|
|
Записан
|
|
|
|
Malaja
|
|
« Ответ #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.
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #14 : 20-10-2004 16:16 » |
|
нет, похоже эти проекты тоже не помогут... А кроме того - ох уж этот немецкий - студия не понимает... и проекты не компилятся Ирин , спасибо за всё , я думаю я остановлюсь на том, что сейчас у меня - стало довольно приемлимо. Пока, по крайней мере
|
|
|
Записан
|
|
|
|
Malaja
|
|
« Ответ #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:
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #16 : 21-10-2004 13:49 » |
|
да нестрашно, не за что извиняться-то Я нашёл выход, который меня устроил
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #17 : 23-10-2004 16:30 » |
|
как определить максимальную ширину текста в столбце грида (в пикселах) ? - чтобы потом сделать соответствующую ширину колонки
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #18 : 29-10-2004 12:57 » |
|
ещё такие вопросы:
1) как пользоваться void MSFlexGrid::AddItem(LPCTSTR Item, const VARIANT& index)
2) при перерисовке грид МИГАЕТ! Причём новые строки в таблице у меня в проге могут добавляться до 2 раз в секунду - мерцание очень нехорошо.
Как заставить грид рисовать на контекст в память, а потом копировать разом на экран? Или - так: как устранить мерцание?
|
|
|
Записан
|
|
|
|
|