By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,570 Members | 1,677 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,570 IT Pros & Developers. It's quick & easy.

Value in recordset changes 2 variables Help

P: n/a
I have this code below when I asign strOldTkinit = strNewTkinit and
then read the new value for the strNewTkinit from the recordset the
strOldTkinit changes the value also. So when I run my comparison the
values is always equal even though I read a new value from the
recordset. Please help.
function getRSXML(strSQL) {
var adoCnn = null;
var adoRst = null;
var strRst = null;
var strReturn = null;
var i=0;
var intPeriod = null;
var intRange = null;
var intPeriodTotal = null;
var intRangeTotal = null;
var intValue = 0;
var strNewTkinit = "";
var strOldTkinit = "";
var strTkName = null;
var strPeriod = 0;
var numberTimes = 0;

strReturn = "";

try {
adoCnn = new ActiveXObject("Webview.clsDatalayer");
adoRst = new ActiveXObject("ADODB.Recordset");
adoRst = adoCnn.Get_RecordSet(strSQL);
//Get the <STATS> Info
strReturn += '<STATS>';
while ((adoRst.EOF == false) && (adoRst.BOF == false)) {
strPeriod = adoRst(2);
intValue = adoRst(5);
if (strNewTkinit == strOldTkinit)
{
//strOldTkinit == strNewTkinit;
//Same timekeeper perform calculations
if (strPeriod == '0804'){ //should be a variable for current
period
intPeriod = intValue;
}
else{
intRange += intValue;
}
}
else // strOldTkinit == strNewTkinit;
{

if (numberTimes == 0)
{
numberTimes ++; // Never again
//strOldTkinit = strNewTkinit;

strTkName = adoRst(3) + ' ' + adoRst(4);

//Same timekeeper perform calculations
if (strPeriod == '0804'){ //should be a variable for current
period
intPeriod = intValue;
}
else{
intRange += intValue;
}

}
else
{
//If new timekeeper print current line
i++;
strReturn += '<z r=\"'+ i +'\" c1=\"'+ strOldTkinit +'\"
c2=\"'+ strTkName +'\" c3=\"'+ intPeriod +'\" c4=\"'+ intRange +'\"
/>';

//Calculate values for the <STATSFOOTER>
intPeriodTotal += intPeriod;
intRangeTotal += intRange;

//strOldTkinit = strNewTkinit;
trTkName = adoRst(3) + ' ' + adoRst(4);

if (strPeriod == '0804'){ //should be a variable for current
period
intPeriod = intValue;
}
else{
intRange += intValue;
}

}

}
adoRst.movenext;
strOldTkinit = strNewTkinit;

}

i++;
strReturn += '<z r=\"'+ i +'\" c1=\"'+ strOldTkinit +'\" c2=\"'+
strTkName +'\" c3=\"'+ intPeriod +'\" c4=\"'+ intRange +'\" />';

//Calculate values for the <STATSFOOTER>
intPeriodTotal += intPeriod;
intRangeTotal += intRange;

strReturn += '</STATS><STATSFOOTER>';
//<z r="397" c1="" c2="GRAND TOTAL" c3="-7169.50"
c4="175414250.54" />
strReturn += '<z r=\"'+ numberTimes +'\" c1=\"\" c2=\"GRAND TOTAL\"
c3=\"'+ intPeriodTotal +'\" c4=\"'+ intRangeTotal +'\" />';
strReturn += '</STATSFOOTER>';
} catch (DBErr) {
strReturn = "DBErr" + DBErr.message;
} finally {
try {
adoRst.Close();
} catch (CloseErr){}

adoCnn = null;
adoRst = null;
strRst = null;
}
return strReturn;
}
Jul 23 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Lee
ferky said:

I have this code below when I asign strOldTkinit = strNewTkinit and
then read the new value for the strNewTkinit from the recordset the
strOldTkinit changes the value also. So when I run my comparison the
values is always equal even though I read a new value from the
recordset. Please help.


Within all of the code you posted, the only value ever assigned
to strNewTkinit is "", so it seems like you haven't shown us the
important code.

However, your symptom sounds like strNewTkinit is being set to the
reference to an Object. In that case, setting strOldTkinit will
set that variable to refer to the *same Object*, so changing the
attributes of either one is seen in both. What to do to fix that
depends on what sort of Object is involved.

Jul 23 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.