|
I used the defines :
<br />
#typedef unsigned hyper ulonglong;<br />
<br />
#define uint8korr(A) (*((ulonglong *) (A)))<br />
#define int8store(T,A) *((ulonglong *) (T))= (ulonglong) (A)<br />
In my code, pbuf is a PBYTE pointed to
1 e1 f5 5 0 0 0 0
When I want to store the data into another buffer pdata, I did:
int8store(pdata, pbuf);
I got the dump of pdata becomes:
e0 2e 35 1 0 0 0 0
Anything wrong ??? It seems it's just doing casting and then setting A = B stuff. Why did the value has changed ?
|
|
|
|
|
#define int8store(T,A) *((ulonglong*)(T))=(ulonglong)(*(A)) (I think)
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Need help from guru!
I need to pass a CList to another function.
When I just pass to CList* plist = &pTeacher;
it doesn't work! please help!
my Clist is like this,
CList<cteacher, cteacher=""> pTeacher;
// CTEACHER is a structure.
Thank for attention!
JW
|
|
|
|
|
This cannot possibly compile, as CList is missing the type of objects it should contain. Try declaring it like CList<CTEACHER> .
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
I will try, thanks!
JW
|
|
|
|
|
hi i'm having some problems in inserting a UNICODE string into a database.
always saves "??????". I'm trying to write some HINDI chars..
can someone help me??
thnx
|
|
|
|
|
Both the database and the GUI on top of it must support Unicode, and it sounds like the GUI does not. (When characters show up as ?, it means the app (or OS, during the paste) tried to convert the Unicode to ANSI, but the ANSI code page in use did not contain the character.)
--Mike--
Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer
My really out-of-date homepage
Sonork-100.19012 Acid_Helm
|
|
|
|
|
well that's why i'm sending the code:
here it is an example:
m_rs.m_teste = _T("Hello India \x0939\x093f\x0928\x094d\x0926\x093f");
if i do the same into a Unicode file it works..
|
|
|
|
|
Can someone please tell me how to use delay loading of DLLs? Specifically,
1. Do I need to do anything while building the DLL that I want to "delay-load"?
2. What do I need to do to my project settings so that it can delay load a particular dll?
3. Most importantly, do I need to change any of my existing code which calls the functions in the dll (the existing code was written to call the functions from a static lib)?
4. The reason I want to delay load is that I want to provide the user with an option to upgrade the software, hence the choice of DLLs and I don't want to insert numerous calls to LoadLibrary() and GetProcAddress() all over my code, hence delay loading. That will take just too long and I don't want to litter my code anyway, if there is an alternative. Did I get it right? Will delay loading let my existing (caller) code remain as it is, with maybe only a few changes to write a helper function and the likes? How do I use the helper function anyway? Do I need to call each function in the DLL through this function? In that case it is as bad as LoadLibrary() and GetProcAddress() . Is there any other way?
Thanks very much in advance.
PS: Yes, I tried to RTFM, but after going through the MSDN docs, I was as confused as before. Can someone explain all this to me in plain English?
Regards,
Rohit Sinha
|
|
|
|
|
Rohit Sinha wrote:
1. Do I need to do anything while building the DLL that I want to "delay-load"?
No.
Rohit Sinha wrote:
2. What do I need to do to my project settings so that it can delay load a particular dll?
In your linker settings, add delayimp.lib to the list of libs, then in the parameters section (bottom of the tab) add /delayload:dllname.dll (for example, /delayload:uxtheme.dll )
Rohit Sinha wrote:
3. Most importantly, do I need to change any of my existing code which calls the functions in the dll
No.
--Mike--
Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer
My really out-of-date homepage
Sonork-100.19012 Acid_Helm
|
|
|
|
|
Hi,
I would like to read the return value from a stored procedure in ADO but nothing.
I can write datas to a database by my stored procedure but I cannot read the output value.
The stored procedure is OK.
If anyone can help me with a little code or a website or some informations it is great.
Best Regards
youssef
|
|
|
|
|
Assuming your stored proc looks something like this:
create procedure my_proc( @param1 int )
as
begin
return 1
end
here's how you'd code it up with ADO:
#define ADO_TESTHR(x) { if FAILED(x) _com_issue_error(x); };
_ConnectionPtr pConn;
_CommandPtr pCmd;
_variant_t vtValue;
try
{
ADO_TESTHR( pConn.CreateInstance( "ADODB.Connection" ) );
ADO_TESTHR( pCmd.CreateInstance( "ADODB.Command" ) );
.. open your connection pConn->Open something
pCmd->ActiveConnection = pConn;
pCmd->CommandText = "dbo.my_cool_proc";
pCmd->CommandType = adCmdStoredProc;
pCmd->Parameters->Append( pCmd->CreateParameter( "param1", adInteger, adParamInput, sizeof(int) ) );
pCmd->Parameters->Append( pCmd->CreateParameter( "return", adInteger, adParamReturnValue, sizeof(int) ) );
pCmd->Parameters->Item["param1"]->Value = 1234;
pCmd->Execute( NULL, NULL, adCmdStoredProc );
vtValue = pCmd->Parameters->Item["return"]->Value;
if( vtValue.vt == VT_I4 )
{
TRACE( "%lu\n", static_cast< long >( vtValue ) );
}
}
catch( _com_error &ce )
{
}
try
{
if( pConn )
{
if( pConn->State != adStateClosed )
{
pConn-Close();
}
}
}
catch( ... )
{
}
Ty
"The significant problems we face cannot be solved at the same level of thinking we were at when we created them." -Albert Einstein
|
|
|
|
|
Thank yo for the answer.
Please find here my sample code with the stored procedure.
With my code I can't retrieve the output value.
Best Regards
void CStoreProcedureDlg::OnWriteData()
{
//Initialize the connection with the Database RTLSQL1 ARCHIVES_NUM
//COM initialization
CoInitialize (NULL);
_ConnectionPtr m_pConn2("ADODB.Connection");
_ParameterPtr pParam2,pParam3;
try
{
//Check if I can create a instance for a connection into a db
HRESULT hr = m_pConn2.CreateInstance (__uuidof (Connection));
if (FAILED (hr))
{
// Automat_LOG_WITH_TIME(_T("DB : Can't create intance of Connection"));
}
else
{
// Automat_LOG_WITH_TIME(_T("DB : I can create intance of Connection"));
}
CString strFileName = "JA980630";
//Check if I can Open a session in the ARCHIVES_TVI
if (FAILED (m_pConn2->Open("provider=sqloledb.1;database=ARCHIVES_TVI;server=1.1.1.1;uid=xxx;pwd=xxx;network=dbmssocn","","",adConnectUnspecified)))
{
// Automat_LOG_WITH_TIME(_T("DB : Can't open datasource ARCHIVES_TVI"));
// Automat_Send_SMS(_T("DB : Can't open datasource ARCHIVES_TVI"),_T(""));
}
else
{
//Automat_LOG_WITH_TIME(_T("DB : I can open datasource ARCHIVES_TVI"));
CString sT;
sT.Format("%d",1);
_variant_t varLiReturn;
int liReturn = -99;
_CommandPtr pCmd2("ADODB.Command");
pCmd2->ActiveConnection = m_pConn2;
//Store procedure for the DATABASE ARCHIVES_NUM
pCmd2->CommandText = "StartFileNumV3";
pParam2 = pCmd2->CreateParameter ( _bstr_t ("FileName"), adVarChar,
adParamInput, strFileName.GetLength (), (_bstr_t) strFileName);
pCmd2->Parameters->Append ( pParam2);
pParam2 = pCmd2->CreateParameter ( _bstr_t ("AutomatNr"), adInteger,
adParamInput, sizeof(int), _variant_t (sT));
pCmd2->Parameters->Append ( pParam2);
// pCmd2->Parameters->Item[_variant_t((long)1)]->Direction = adParamReturnValue;
pParam2 = pCmd2->CreateParameter(_T("Status"),adInteger,adParamOutput,sizeof(int),varLiReturn);
pCmd2->Parameters->Append ( pParam2);
//pParam2->Value = vtroyal;
_RecordsetPtr pRecordset;
pRecordset.CreateInstance(__uuidof(Recordset));
pRecordset = pCmd2->Execute(NULL, NULL, adCmdStoredProc);
varLiReturn = pCmd2->Parameters->Item[_T("Status")]->Value;
Sleep(100); //ms
//Automat_LOG_WITH_TIME(_T("DB : The Store Procedure have been execute with success (StartFileNum)"));
//Close the DATABASE
if ( (m_pConn2->State & adStateOpen) == adStateOpen)
{
m_pConn2->Close();
// Automat_LOG_WITH_TIME(_T("DB : I can close datasource RTLSQL1 ARCHIVES_TVI"));
}
else
{
// Automat_LOG_WITH_TIME(_T("DB : I can't close datasource RTLSQL1 ARCHIVES_TVI"));
}
}
}
catch ( _com_error &e )
{
_bstr_t bstrSource (e.Source());
_bstr_t bstrDescription (e.Description());
CString sErrorDB;
sErrorDB.Format("DB : ERROR !!!!! ARCHIVES_TVI\r\nException thrown for classes generated by #import\r\nCode = %08lx\r\nCode meaning = %s\r\nSource = %s\r\nDescription = %s\r\n", e.Error (), e.ErrorMessage (), (LPCTSTR) bstrSource, (LPCTSTR) bstrDescription);
// Automat_LOG_WITH_TIME(sErrorDB);
MessageBox (sErrorDB, bstrDescription,MB_OK);
}
catch (...)
{
TRACE ( "*** Unhandled Exception ***" );
}
Sleep(100); //ms
CoUninitialize();
}
__________________________________________________________________________________
The stored procedure :
CREATE PROCEDURE StartFileNumV3
(
@FileName varchar(8), @AutomatNr int, @Status int OUTPUT
)
AS
declare @Now datetime
declare @Nbr int
set @Nbr = (SELECT COUNT(*) FROM Num_Files WHERE (File_Name = @FileName))
if @Nbr = 1
begin
set @Nbr = (SELECT COUNT(*) FROM Num_Files WHERE (File_Name = @FileName) and (SetNumReady is not null) and (DateSetNumReady is not null))
if @Nbr = 1
begin
set @Now = GetDate()
UPDATE Num_Files SET Num_Go = @Now, AutomatNr = @AutomatNr WHERE File_Name = @FileName
SET @Status = 1
end
else
begin
/*La référence du fichier est présente dans la table, mais celle-ci ne doit pas se trouver dans la BétaCart ...*/
SET @Status = 2
end
end
else
begin
/*La référence du fichier n'est pas présente dans la table ...*/
SET @Status = 0
end
SELECT @Status
GO
youssef
|
|
|
|
|
Ahh, your procedure has an output parameter, not a return value. That's a little different. What happens with this line of code:
varLiReturn = pCmd2->Parameters->Item[_T("Status")]->Value;
Does varLiReturn contain the right value, or do you get something incorrect? Does it throw a COM error at that point, or ? Everything looks okay just from a quick glance.
Ty
"The significant problems we face cannot be solved at the same level of thinking we were at when we created them." -Albert Einstein
|
|
|
|
|
Is that I must to force a ReturnValue in my stored procedure for resolve my problem ?
Best Regards
youssef
|
|
|
|
|
No, you can definitely use output parameters in ADO. I do them all the time. What exactly is going wrong when you execute your code? It looks okay from looking at it, but it will help to know what is happening. Does it throw a _com_error, or is the value just wrong?
Ty
"The significant problems we face cannot be solved at the same level of thinking we were at when we created them." -Albert Einstein
|
|
|
|
|
youssef read here, you have an explanation how get the return value....
Regards
Carlos Antollini.
Sonork ID 100.10529 cantollini
|
|
|
|
|
Many thanks Carlos
Best Regards
youssef
|
|
|
|
|
When I execute my sample, now I have an IDispatch Error #3079 : error converting data char to int.
Please find the source code for checking where is the problem.
Other thing, I would like to know if I can specifie the NAME for each INPUT for the STORED PROCEDURE.
Best Regards
void CADO_SP_CARLOSDlg::OnButton1()
{
//Sample with Connection string for SQL Server
CADODatabase pAdoDb;
CString strConnection = _T("");
//strConnection = _T("Provider=MSDASQL;PersistSecurityInfo=False;"
// "Trusted_Connection=Yes;"
// "Data Source=Access Sql Server;catalog=sampledb");
strConnection = _T("provider=sqloledb.1;database=ARCHIVES_TVI;server=132.160.148.48;uid=Automat1;pwd=boulet");
pAdoDb.SetConnectionString(strConnection);
if(pAdoDb.Open())
{
m_editStatus = _T("OK");
}
else
{
m_editStatus = _T("KO");
}
UpdateData(FALSE);
//CADORecordset prs(&pAdoDb);
//Input Value
CADOParameter pParamIn_AutomatNr(CADORecordset::typeInteger, sizeof(int),CADOParameter::paramInput,_T("AutomatNr"));
CADOParameter pParamIn_FileName(CADORecordset::typeChar, sizeof(char) * 8, CADOParameter::paramInput,_T("FileName"));
//Output Value
CADOParameter pParamOutStatus(CADORecordset::typeInteger, sizeof(int), CADOParameter::paramOutput,_T("Status"));
//Set Datas to the Stored Procedure
pParamIn_AutomatNr.SetValue(1);
CString strFileName= "JK950213";
pParamIn_FileName.SetValue((_bstr_t) strFileName);
CADOCommand pCmd(&pAdoDb, "StartFileNumV3");
pCmd.AddParameter(&pParamIn_AutomatNr);
pCmd.AddParameter(&pParamIn_FileName);
pCmd.AddParameter(&pParamOutStatus);
CADORecordset pRs(&pAdoDb);
if(pRs.Execute(&pCmd))
{
CString str = _T("");
int nVal=0;
pParamOutStatus.GetValue(nVal);
}
}
the Stored Procedure :
CREATE PROCEDURE StartFileNumV3
(
@FileName varchar(8), @AutomatNr int, @Status int OUTPUT
)
AS
declare @Now datetime
declare @Nbr int
set @Nbr = (SELECT COUNT(*) FROM Num_Files WHERE (File_Name = @FileName))
if @Nbr = 1
begin
set @Nbr = (SELECT COUNT(*) FROM Num_Files WHERE (File_Name = @FileName) and (SetNumReady is not null) and (DateSetNumReady is not null))
if @Nbr = 1
begin
set @Now = GetDate()
UPDATE Num_Files SET Num_Go = @Now, AutomatNr = @AutomatNr WHERE File_Name = @FileName
SET @Status = 1
end
else
begin
/*La référence du fichier est présente dans la table, mais celle-ci ne doit pas se trouver dans la BétaCart ...*/
SET @Status = 2
end
end
else
begin
/*La référence du fichier n'est pas présente dans la table ...*/
SET @Status = 0
end
SELECT @Status
GO
youssef
|
|
|
|
|
When I Insert the records into the database which contain files using the following code:-
CSplit splt;
HGLOBAL hGlobal;
int m_r;
tst.Open(CRecordset::dynamic);
tst.AddNew();
tst.m_Split_ID ="128888211111";
CString m_strMid;
m_r = f.GetLength();
hGlobal = GlobalAlloc(GPTR,m_r);
tst.m_Split_Eng_Text.m_dwDataLength = m_r;
tst.m_Split_Eng_Text.m_hData = GlobalLock(hGlobal);
f.ReadHuge(tst.m_Split_Eng_Text.m_hData,m_r);
tst.SetFieldDirty(&tst.m_Split_Eng_Text);
tst.SetFieldNull(&tst.m_Split_Eng_Text,FALSE);
tst.Update();
f.Close();
tst.Close();
But When I repeat the above lines of code
It is giving me error as
"Out of Memory"
Can anyone suggest the solution for it
Samir Sood
|
|
|
|
|
GlobalAlloc is fine, but when u finish with the allocated memory u should use GlobalFree
Papa
Murex Co.
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
I have used the GlobalFree function but to no avail
Samir Sood
|
|
|
|
|
I need help writing a C++ source code for a two dimensional array [4}[4]that prompts the user to enter the numbers. The program should include a class which include public and private identifiers. The program must read the data and calculate the sum of each row, the sum of each column, the sum of main diagonal and print the results.
Somebody, please, please help me!
|
|
|
|
|
is this some assignment?
if so, try it yourself first.
i could help you, if you post your code
Thomas
modified 29-Aug-18 21:01pm.
|
|
|
|
|
I have worked on this code for two days. I made several changes but can't seem to find the right combination. This is my first programming class. What is wrong with this one?
//This is an interactive program that will
//prompt the user to enter 16 real numbers,
//one at a time. The numbers will be stored
//into a two dimensional array. This program
//will calculate the sum of each row, sum of
//each column, the sum of diagonal and print the results.
#include <iostream.h>
class twod
{
public:
int sumr;
int a[4][4];
int read (int a[4][4]);
int sor (int a[4][4]);
int soc (int a[4][4]);
int somd (int a[4][4]);
private:
void print(int sumr, int sumc, int d);
// call the functions
read(int a);
sumr = sor(int a[4][4]);
sumc = soc(a);
d = somd(a);
print (int sumr, int sumc, int d);
return 0;
};
int twod::read(int a[4][4])
{
int i, j;
{
for (i=0; i<=3; ++i)
{
for (j=0; j<=3; ++j)
{
cout <<"Enter an integer: " <<endl;
cin="">> a[i][j];
}
}
}
return (a[0]);
}
int twod::sor(int a[4][4])
{
int sumr = 0;
int i;
for (i=0; i<=3; ++i)
{
for (j=0; j<=3; ++j)
int sumr = sumr +a[i][i];
return (sumr);
}
}
int twod::soc(int a[4][4])
{
int i, j;
int sumc =0;
for (i=0; i<=3; ++i)
{
for (j=0; j<=3; ++j)
sumc =a[j][j];
sumc = sumc[j] + a[i][j];
}
return (sumc);
}
int twod::somd(somd (int a[4][4])
{
int d = 0;
int i;
for (i=0; i<=3; ++i)
d = d + a[i][i];
return (d);
}
void int twod::print(int sumr, int sumc, int d)
{
cout <<"The sum of rows is : " << sumr <
|
|
|
|
|