|
Howdy friends!
I'm working on project about VLDB. I developed an application server and its SDK. Data size approximately 15.000.000 records which is remain on Microsoft Analysis Services (OLAP). System configuration at below;
2 Hyper Threading Intel Xeon CPU,
2 gb Memory
RAID 1, RAID 5
Windows 2000 Advanced server
Compaq Proliant Server
But, it didn't give expected response time for us (20 secs for 5.000.000 records) . The question is, can i access all of the data in 15 sec. What is the wrong? Anybody can recommend any site or book about vldb?
Thank you
Ahmet Orkun GEDiK
System & Software Support Specialist (SAP R/3)
ASTRON
|
|
|
|
|
hi freinds,
Can any one help to convert an programmitically generated image transparent
|
|
|
|
|
How transparent?
Are you talking about alpha chanel or transparency mask
and how to create that mask?
Delf
|
|
|
|
|
Hi,
I am trying to use the CArray class as follow:
class CVueAtelier
{
protected :
CArray<cvuecomposant, cvuecomposant=""> vueElementsAtelier;
...
}
where CVueComposant is an abstract class I defined
and when I try to build this is the error I get :
...\include\afxtempl.h(201) : error C2259: 'CVueComposant' : cannot instantiate abstract class due to following members:
...\cvuecomposant.h(15) : see declaration of 'CVueComposant'
...\cvueatelier.h(26) : see reference to class template instantiation 'CArray<class cvuecomposant,class="" cvuecomposant="">' being compiled
Please help me,
Pierre
|
|
|
|
|
CArray is a template.
Example: CArray<cpoint,cpoint> ptArray;
INTP
|
|
|
|
|
CArray<point,point> ptArray;
INTP
|
|
|
|
|
We made a hardware for digitizing video data . I want to program a driver for this card . But I dont have soutable document to study driver programming . Please define me soutable document ?
Very Thanks ------>> ;
|
|
|
|
|
|
Hello: There are several books available for writing drivers. Assuming that your developing for NT/Win2k/XP the book I recommend is by Walter Oney called "Programming the Microsoft Windows Driver Model, Second Edition ". You will also need to order the DDK from Microsoft.
Dave Jones
|
|
|
|
|
|
is the target of your device driver is on Windows or Unix system, and what is your compiler...
TOXCCT
|
|
|
|
|
Hi,,,
I develop an ActiveX control (ATL 3.0) and I build and test it as unicode on WinXP Pro..
Can this control work fine on Win9x - ME ?
what precautions must I take care of ?
thanks in advance.
|
|
|
|
|
|
thank you..
but what about :Microsoft Layer for Unicode
can i link to it statically so i can distribute the ocx with no dependencies ?
|
|
|
|
|
|
How to create a dhtml dialog in vc and then how can we call it through toolbar and i have also to do some processing on the atl component under it using vb script please explain it briefly or tell me some articles
ThanX in advance
Inam
|
|
|
|
|
I've been trying to do something like this in my OnInitDialog:
<br />
CDatabase db;<br />
AnstalldaSet set(&db);<br />
TRY<br />
{<br />
set.Open();<br />
if (! set.IsBOF())<br />
{<br />
set.MoveFirst();<br />
while (! set.IsEOF())<br />
{<br />
m_Fornamn.SetWindowText(set.m_FORNAMN);<br />
m_Efternamn.SetWindowText(set.m_EFTERNAMN);<br />
set.MoveNext();<br />
}<br />
}<br />
}<br />
CATCH(CDBException, pDBException)<br />
{<br />
AfxMessageBox(pDBException->m_strError);<br />
}<br />
END_CATCH<br />
<br />
set.Close();<br />
<br />
return TRUE;
However, I get a strange problem - when I started the app the first time, it all worked great.
However, when I closed the app it didn't dissapear from the Processes view in the taskmanager. If I stop the process it won't run again... I tried restarting the computer, but that doesn't help either.
Does anybody have a clue? I don't...
BTW, when I double click to start the program (or CTRL+F5 in VisualC++) it appears in the Processes view, and in MySQL Admin as an open thread. But the dialog never shows on the screen!
(It's a normal App-Wizard generated dialog app, with the only addition of a CRecordset class!)
Big thanks to DavidCrow for helping with the recordset...
|
|
|
|
|
Your problem is with the record set object.
What you are doing is you create the database connection, create a recordset and issue a query, getting a set of results. Then, you run through the complete database and alter the window name/edit box contents based on the results from the database. Your dialog will default to showing the last entry in the database after it is shown.
Instead of browsing through the entire database on the dialog initialization, you should only create and issue the query commands there. Then create a set of Forward/Backward buttons on your dialog to browse through it.
The actual problem may also persist in either the database or the connection into the database. Or it may also reside elsewhere in your program. Try debugging through the application to see what it does. Pay special interest on the HWND of the dialog. If it gets initialized properly, then the dialog is created. If it is not, then the dialog would never show up.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
Thanks for the help! Worked a bit better now!
I've created 2 buttons now, to be able to move back and forward for a start. But neither
void CCPTestDatabasDlg::OnBback() <br />
{<br />
AnstalldaSet::MovePrev(); <br />
}
or
<br />
{<br />
set.MovePrev(); <br />
}
works... Any thoughts? Should I declare some kind of global pointer in my recordsetclass or?
|
|
|
|
|
No.
You should move the AnstalldaSet member variable (your CRecordset-derived class, I assume) into the header file of your dialog, as it's member variable. This way, you can access the created object anytime.
Also, remember that you MUST move the database object in there as well. Otherwise, you create the database object, bind the recordset, create a query, and when OnInitDialog goes out of scope, the database object gets destroyed and closes itself up, making your recordset object just about useless.
It is possible to create recordset objects that get their results from the database and then save the whoke result into local variables. However, I suggest you keep the database connection constantly open when you browse the databse, no matter what the type of the recordset is. So, move both the CDatabase object and the CRecordset-derived class into the dialog's header file. Initialize and open them in OnInitDialog , then use them when the dialog is open, and close them in the destructor of the dialog.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
Antti Keskinen wrote:
You should move the AnstalldaSet member variable (your CRecordset-derived class, I assume) into the header file of your dialog, as it's member variable. This way, you can access the created object anytime.
How do I go about this? Do I just include the first two lines in the dlg.h?
I'm very new 2 database programming (and VisualC++ for that matter), so I don't really know what U mean...
BTW, any relation to Esa Keskinen?
|
|
|
|
|
Nope, no relation
Just like that. Move the two lines into the dialog header. Try to think of it like this: when your dialog object gets created, a CDatabase object and a CRecordset object are created with it, because they are in the header file. Then, in the initialization, you initialize the objects, and upon clean-up, you destroy them.
Inbetween these two episodes, you use them
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
Thanks! After a bit of fiddling I got it work! I just put the two lines in the beginning of the .cpp file instead (got some errors when I put it in the .h file).
Another question though... How should I go about performing an update when I'm not using CRecordview?
Thanks again!
|
|
|
|
|
What update do you mean ?
If you mean how to update the data members, then I suggest you familiarize yourself with the concept of RFX, or Record Field Exchange . This practise is used to get data from the data source and save it into local variables (members of the CRecordset -derived object, such as CStrings , int s etc). When you issue a MoveNext call, the actual pointers inside the results list (handled by the CRecordset object) are moved forward. Then DoFieldExchange , an overriddable virtual function gets called. In here, if you issue a set of certain function calls (RFX calls), you can load the data in the currently selected row into the local variables you specify. We are not interested how the actual database or result browsing works: the CRecordset object offers an interface through which we can copy the desired data away into local variables.
The rest is quite simple: following the same logic, you implement a Dialog Data Exchange (DDX) routine, in which you copy the contents of the variables from the CRecordset object into local variables of the dialog class (member variable to member variable, respectively). After this, you let the DDX routine (DoDataExchange virtual function on the dialog class) to "bind" these local variables into the actual controls of the dialog resource. This means that whenever the DDX routine is ran, data is copied from either the local variables into the controls, or vice-versa.
The same bi-directionality is implemented in the CRecordset object, but it works a bit differently (See the CRecordset documentation for more info, especially AddNew and Update member functions).
Hope this clears it up a bit. See MSDN documentation for a complete explanation. Naturally, experimenting with both DDX and RFX is the best way to learn how to use them. But if you understand the basic concept: "Binding a local attribute of a class into a control's data/manipulation or into a query's result row's column", you've taken a huge leap forwards.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
Oleg Galkin and Alexander Kuzmin give us solutions to this problem. Unfortunately, I cann't get it work well even in the easiest circumstances.
Is there any other good solution to it?
|
|
|
|