Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > structure and pointer problems?

Reply
Thread Tools

structure and pointer problems?

 
 
milkyway
Guest
Posts: n/a
 
      12-08-2005
Hello,

I am making a service for use with gsoap. It is called
InstTicktServer.c.

The header file is defined as follows:

typedef struct InstTickt__struct_DBInstantTckt {
xsd__int GameNo;
xsd__int PackNo;
xsd__int VIRNNo;
xsd__int LatexNo;
xsd__int TicktStat;
xsd__int RetailNo;
xsd__int TermAmt;
xsd__int LMSAmt;
xsd__string SerialNo;
xsd__string TermDateTime;
xsd__string SysDateTime;
} ;

typedef struct InstTickt__Response {
struct InstTickt__struct_DBInstantTckt *DBList;
xsd__int NoOfItems;
};


--------------------------------------------------------------
Then I have the following function for the processing of the server
code:

int InstTickt__db_get(struct soap *soap, xsd__string *login_name,
xsd__string *login_password,
struct InstTickt__struct_QRYInstantTckt *WhereClause,
struct InstTickt__Response *DBListing)
{

int return_code;
int i = 0;
int my_num_rows = 0;
QRYInstantTckt set_clause;
QRYInstantTckt where_clause;
DBInstantTckt in_InstantTckt[100];

db_reset_query_InstantTckt(&where_clause);
strcpy(where_clause.QRYTermDateTime, "01-NOV-1997");
strcpy(where_clause.QRYOPTermDateTime, "=");

my_num_rows = db_get_InstantTckt("scott", "tiger", in_InstantTckt, -1,
where_clause);

DBListing -> NoOfItems = my_num_rows;

/**********************************
Even though the result returns 99 rows, I just allocate 4
cells below for testing purposes
***********************************/
DBListing -> DBList = (struct InstTickt__struct_DBInstantTckt *)
soap_malloc(soap, sizeof(struct InstTickt__struct_DBInstantTckt) *
4);

if (DBListing -> DBList == NULL)
{
return soap_receiver_fault(soap, "Malloc Failure", "Can't allocate
space for answer!");
}


/*
MAIN PART NOT WORKING, Cell 0 gets the value and prints into
the XML response but Cell 1 does not get the value
*/

DBListing -> DBList[0].GameNo = 111111111;
DBListing -> DBList[1].GameNo = 222222222;

return SOAP_OK;
}


--------------------------------------------

If you look at the resulting XML envelope below, you can see
"111111111" for "GameNo". This is the first cell - but - I do not see
"222222222" for "GameNo" for the second cell.

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlnssi="http://www.w3.org/2001/XMLSchema-instance"
xmlnssd="http://www.w3.org/2001/XMLSchema"
xmlns:InstTickt="urn:InstTickt"><SOAP-ENV:Body
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><InstTickt:Response><DBList><GameNo>11111111 1</GameNo><PackNo>1089956652</PackNo><VIRNNo>0</VIRNNo><LatexNo>0</LatexNo><TicktStat>1056768</TicktStat><RetailNo>167837696</RetailNo><TermAmt>0</TermAmt><LMSAmt>0</LMSAmt></DBList><NoOfItems>99</NoOfItems></InstTickt:Response></SOAP-ENV:Body></SOAP-ENV:Envelope>


Please tell me - what am I doing wrong????

TIA

 
Reply With Quote
 
 
 
 
mlimber
Guest
Posts: n/a
 
      12-08-2005
milkyway wrote:
> Hello,
>
> I am making a service for use with gsoap. It is called
> InstTicktServer.c.
>
> The header file is defined as follows:
>
> typedef struct InstTickt__struct_DBInstantTckt {
> xsd__int GameNo;
> xsd__int PackNo;
> xsd__int VIRNNo;
> xsd__int LatexNo;
> xsd__int TicktStat;
> xsd__int RetailNo;
> xsd__int TermAmt;
> xsd__int LMSAmt;
> xsd__string SerialNo;
> xsd__string TermDateTime;
> xsd__string SysDateTime;
> } ;
>
> typedef struct InstTickt__Response {
> struct InstTickt__struct_DBInstantTckt *DBList;
> xsd__int NoOfItems;
> };
>
>
> --------------------------------------------------------------
> Then I have the following function for the processing of the server
> code:
>
> int InstTickt__db_get(struct soap *soap, xsd__string *login_name,
> xsd__string *login_password,
> struct InstTickt__struct_QRYInstantTckt *WhereClause,
> struct InstTickt__Response *DBListing)
> {
>
> int return_code;
> int i = 0;
> int my_num_rows = 0;
> QRYInstantTckt set_clause;
> QRYInstantTckt where_clause;
> DBInstantTckt in_InstantTckt[100];
>
> db_reset_query_InstantTckt(&where_clause);
> strcpy(where_clause.QRYTermDateTime, "01-NOV-1997");
> strcpy(where_clause.QRYOPTermDateTime, "=");
>
> my_num_rows = db_get_InstantTckt("scott", "tiger", in_InstantTckt, -1,
> where_clause);
>
> DBListing -> NoOfItems = my_num_rows;
>
> /**********************************
> Even though the result returns 99 rows, I just allocate 4
> cells below for testing purposes
> ***********************************/
> DBListing -> DBList = (struct InstTickt__struct_DBInstantTckt *)
> soap_malloc(soap, sizeof(struct InstTickt__struct_DBInstantTckt) *
> 4);
>
> if (DBListing -> DBList == NULL)
> {
> return soap_receiver_fault(soap, "Malloc Failure", "Can't allocate
> space for answer!");
> }
>
>
> /*
> MAIN PART NOT WORKING, Cell 0 gets the value and prints into
> the XML response but Cell 1 does not get the value
> */
>
> DBListing -> DBList[0].GameNo = 111111111;
> DBListing -> DBList[1].GameNo = 222222222;
>
> return SOAP_OK;
> }
>
>
> --------------------------------------------
>
> If you look at the resulting XML envelope below, you can see
> "111111111" for "GameNo". This is the first cell - but - I do not see
> "222222222" for "GameNo" for the second cell.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <SOAP-ENV:Envelope
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> xmlnssi="http://www.w3.org/2001/XMLSchema-instance"
> xmlnssd="http://www.w3.org/2001/XMLSchema"
> xmlns:InstTickt="urn:InstTickt"><SOAP-ENV:Body
> SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><InstTickt:Response><DBList><GameNo>11111111 1</GameNo><PackNo>1089956652</PackNo><VIRNNo>0</VIRNNo><LatexNo>0</LatexNo><TicktStat>1056768</TicktStat><RetailNo>167837696</RetailNo><TermAmt>0</TermAmt><LMSAmt>0</LMSAmt></DBList><NoOfItems>99</NoOfItems></InstTickt:Response></SOAP-ENV:Body></SOAP-ENV:Envelope>
>
>
> Please tell me - what am I doing wrong????
>
> TIA


I don't see a C++ *language* question in here, which means that your
post is off-topic in this newsgroup. See the FAQ for what is on-topic
and for some suggestions of better places to post this:

http://www.parashift.com/c++-faq-lit...t.html#faq-5.9

Cheers! --M

 
Reply With Quote
 
 
 
 
Ron Natalie
Guest
Posts: n/a
 
      12-08-2005
milkyway wrote:
> Hello,
>
> I am making a service for use with gsoap. It is called
> InstTicktServer.c.
>
> The header file is defined as follows:
>
> typedef struct InstTickt__struct_DBInstantTckt {


If you wrote this class, you should know that you are not allowed
to use double underscores. They are reserved to the impelementation
(in C++ at least, as a matter of fact this code doesn't look much
like C++ at all, so you probably shouldn't post there).

However, I suspect the problem is with usage of whatever soap library
you are using which is outside the scope of either of these groups.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Simple structure and copying data to pointer of the same structure A C++ 27 04-16-2011 11:07 PM
Pointer to pointer Vs References to Pointer bansalvikrant@gmail.com C++ 4 07-02-2009 10:20 AM
pointer to structure from pointer to member sieg1974@yahoo.com C Programming 6 08-27-2006 01:20 AM
passing the address of a pointer to a func that doesnt recieve a pointer-to-a-pointer jimjim C Programming 16 03-27-2006 11:03 PM
Pointer-to-pointer-to-pointer question masood.iqbal@lycos.com C Programming 10 02-04-2005 02:57 AM



Advertisments