Solved

ASP Database error

Posted on 2006-07-20
31
337 Views
Last Modified: 2008-02-20
Trying to log into the userend of things I get this error now.

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x119c Thread 0x660 DBC 0x169a004 Jet'.

/newkb/inc_search_form.asp, line 29


And on the admin side I get this when trying to login.

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x119c Thread 0x660 DBC 0x169b9fc Jet'.

/newkb/admin/Default.asp, line 15
0
Comment
Question by:darrenakin
  • 19
  • 12
31 Comments
 
LVL 54

Expert Comment

by:b0lsc0tt
ID: 17149793
darrenakin,

I recommend using the Jet driver instead.  The example below should work.

   mdbConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdbpath

Change the name of the connection object (mdbConn) to fit what you need and "mdbpath" should be the variable that holds the path to the Access file or the path itself.

The error you are getting is normally caused by permission issues with the IIS Guest.  However the Jet drivers are recommended over using the ODBC drivers.

b0lsc0tt
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17149910
Ok I am all new to ASP, so here is the code for the user end, this is an included_default page.

<!--#include file="Connections/connDUfaq.asp" -->
<%

%>
<%
set rsTypes = Server.CreateObject("ADODB.Recordset")
rsTypes.ActiveConnection = MM_connDUfaq_STRING
rsTypes.Source = "SELECT *, (SELECT COUNT(*)  FROM FAQS  WHERE FAQ_TYPE = TYPE_ID) AS FAQ_COUNT  FROM TYPES  ORDER BY TYPE_NAME ASC"
rsTypes.CursorType = 0
rsTypes.CursorLocation = 2
rsTypes.LockType = 3
rsTypes.Open()
rsTypes_numRows = 0
%>

<%
Dim HLooper1__numRows
HLooper1__numRows = -2
Dim HLooper1__index
HLooper1__index = 0
rsTypes_numRows = rsTypes_numRows + HLooper1__numRows
%>
<link href="assets/DUfaq.css" rel="stylesheet" type="text/css">
<div class = "links">
  <table border="0" cellspacing="2" cellpadding="2" width="100%">
   
    <tr>
      <td align="center" valign="middle"> <table width="98%" cellpadding="2" cellspacing="2">
          <%
startrw = 0
endrw = HLooper1__index
numberColumns = 2
numrows = -1
while((numrows <> 0) AND (Not rsTypes.EOF))
      startrw = endrw + 1
      endrw = endrw + numberColumns
 %>
          <tr align="center" valign="top">
            <%
While ((startrw <= endrw) AND (Not rsTypes.EOF))
%>
            <td> <table width="100%" border="0" cellspacing="2" cellpadding="2">
                <tr align="left" valign="middle">
                  <td width="22"><img src="assets/folderIcon.gif" width="22" height="18" align="absmiddle"></td>
                  <td class="textBold"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><a href="type.asp?iType=<%=(rsTypes.Fields.Item("TYPE_ID").Value)%>"><%=(rsTypes.Fields.Item("TYPE_NAME").Value)%></a></font> (<%=(rsTypes.Fields.Item("FAQ_COUNT").Value)%>)</td>
                </tr>
                <tr align="left" valign="middle">
                  <td>&nbsp;</td>
                  <td class="textGray"><i><%=(rsTypes.Fields.Item("TYPE_DESCRIPTION").Value)%></i></td>
                </tr>
              </table></td>
            <%
      startrw = startrw + 1
      rsTypes.MoveNext()
      Wend
      %>
          </tr>
          <%
 numrows=numrows-1
 Wend
 %>
        </table></td>
    </tr>
    <tr>
      <td align="center" valign="middle" class="text"><a href="default.asp">Knowledge Base</a>
        | </td>
    </tr>
  </table>
</div>
<%
rsTypes.Close()
%>
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17149956
And in my Connections folder I have 2 files 1st is connDUfaq.asp and here is the code for that file;

<%
' FileName="Connection_odbc_conn_dsn.htm"
' Type="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
MM_connDUfaq_STRING = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\newkb\_private\DUfaq.mdb")
%>

The second file is connDUfaqadmin.asp, and here is the code for that;

<%
' FileName="Connection_odbc_conn_dsn.htm"
' Type="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
MM_connDUfaq_STRING = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\newkb\_private\DUfaq.mdb")
%>


PLEASE HELP
0
 
LVL 54

Expert Comment

by:b0lsc0tt
ID: 17150220
You will hopefully be able to fix it with just one small correction.  I will guess on the version of the Jet driver and hope that it is the latest.  Are you hosting the site yourself or is this on an ISP's server?

I will actually add a variable just because I like to have the path set in a variable before the connection string.  Try the code below in your connection files.

Dim strPath
strPath = Server.MapPath("\newkb\_private\DUfaq.mdb")
MM_connDUfaq_STRING = ""Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath

The last line in my sample should give you an idea of where to insert it.  If the server is up to date that version (i.e. 4.0) will work.  Otherwise you may need to contact them or try using 3.5.  If strPath is used for something else or you don't like the name then change it.

Let me know how that works and if you have any questions.
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17150352
This is all on my server running sbs2003
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17150357
Color me stupid, but here is the error message with the code above. Thanks so much for your help.


Dim strPath strPath = Server.MapPath("\newkb\_private\DUfaq.mdb") MM_connDUfaq_STRING = ""Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath
ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/newkb/inc_search_form.asp, line 29
0
 
LVL 54

Expert Comment

by:b0lsc0tt
ID: 17150464
Did you put all 3 lines together on one line?  It may be that they just got pasted or typed into the comment wierd but they need to be separate lines.  If that isn't the problem then please let me know which line is line 29.

I will look over the code again after posting this comment and let you know if I find something before you can reply.
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17150507
Lines 1 - 8 are : remarked out they are below;

<%
' FileName="Connection_odbc_conn_dsn.htm"
' Type="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
' MM_connDUfaq_STRING = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\newkb\_private\DUfaq.mdb")
%>

here is Lines 9 - 11 respectfully, there are no more after that

Dim strPath
strPath = Server.MapPath("\newkb\_private\DUfaq.mdb")
MM_connDUfaq_STRING = ""Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath


I believe that the line 29 is coming from the inc_search_form, here is line 29

rsCount.ActiveConnection = MM_connDUfaq_STRING

0
 
LVL 5

Author Comment

by:darrenakin
ID: 17150521
Line 29 on the default page is:

    </table></td>

So thats not it. Also included in a file called inc_default, here is line 29 of that:

rsTypes.ActiveConnection = MM_connDUfaq_STRING
0
 
LVL 54

Expert Comment

by:b0lsc0tt
ID: 17150556
Looks like a typo of mine may be causing the problem.  The line with Provider= should start with just one double quote.  I accidently put 2 and it looks like you have it that way in your code.  Correct that problem and let's see what happens.  Sorry about the mistake and not catching it earlier.  The correct line would be ...

MM_connDUfaq_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17150559
By the way I am running version 4.0.6305 Driver
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17150576
Ok corrected the typo and here is the error

Dim strPath strPath = Server.MapPath("\newkb\_private\DUfaq.mdb") MM_connDUfaq_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath
ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/newkb/inc_search_form.asp, line 29
 
And no problem on not catching it sooner, I am just glad that you are helping.
0
 
LVL 54

Expert Comment

by:b0lsc0tt
ID: 17150641
The error message you are getting seems odd.  I want to see what is in the variable that is being used for the ActiveConnection property.  Insert the line below in your code just above the line "rsTypes.ActiveConnection ...".  The response.end line will hopefully get the code to print the variable before the error.

Response.Write MM_connDUfaq_STRING
Response.End

Those lines will print what is in the variable and then stop the script.  If you still get the error message then try to add the line below to the top of your script.

<% On Error Resume Next %>

If that doesn't bypass the error so that we can see the variable then comment out the line for the ActiveConnection.  You may even need to comment out the other lines below to open the connection and set other properties for the connection.
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17155372
I entered your code and here is the error message now;

Dim strPath strPath = Server.MapPath("\newkb\_private\DUfaq.mdb") MM_connDUfaq_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath
ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/newkb/inc_search_form.asp, line 29
0
 
LVL 54

Expert Comment

by:b0lsc0tt
ID: 17155472
Isn't that the same error message?  Make sure that you comment out all of the lines that open the recordset or set its properties.  Those lines will begin with "rsTypes." and that will hopefully be a way to temporarily get past the error.  Comment out the lines by adding one single quote mark (') in front of the line.

If you still get the same error message then please paste that section of code into this question again.
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 5

Author Comment

by:darrenakin
ID: 17155557
I remarked out the strings in question, here is what I am getting. I am sorry for being dumb I do not know ASP, so please bear with me,

Dim strPath strPath = Server.MapPath("\newkb\_private\DUfaq.mdb") MM_connDUfaq_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath  
0
 
LVL 54

Expert Comment

by:b0lsc0tt
ID: 17155665
Thanks.  That's OK, you are having patience with me too. :-)

OK.  That was what I thought but I have no idea how that happened.  The string contains what should have been 3 separate lines.  Try deleting that section of code (starting from "Dim strPath" to "MM_connDUfaq_STRING ...") and then manually typing in those lines.  Press Enter between each line to separate them.  If it works then the result of the page as we have it now should be just that connection string (e.g. Provider=Microsoft.Jet ...).

If you still get the same result after retyping the lines then try to move them into the ASP file itself and comment them out in the include file.

Hopefully it is just some odd typo and this will correct it.  If the results are correct then you can uncomment the connection and see if it works.  Don't forget to remove the few lines we added for this test.
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17156837
Ok, I did what you asked and no luck. There are going to be several post that follow that will include the file name along with the code for the pages that are involved here. Once again thank you. The first file is default.asp, this file as you can see includes several other files. We will not worry with the header or footer since these are just graphic files. The following post will include file's inc_search_form.asp and inc_default.asp Heres the code for Default;

<% Response.Buffer = True %>
<html>
<head>
<title>Spectrum Computing Knowledge Base</title>
<link href="assets/DUfaq.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body background="assets/bg_main.gif" >
<table width="760" border="0" cellspacing="2" cellpadding="0">
  <tr>
    <td>
      <!--#include file="inc_header.asp" -->
    </td>
  </tr>
 
  <tr>
    <td>
      <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#003399">
        <tr>
          <td bgcolor="#FFFFFF">
             
             
             
                   <!--#include file="inc_search_form.asp" -->
                  <!--#include file="inc_default.asp" -->
             
             
              </td>
        </tr>
      </table></td>
  </tr>
  <tr>
    <td>
      <!--#include file="inc_footer.asp" -->
    </td>
  </tr>  
</table>
</body>
</html>
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17156844
Heres the code for inc_search_form.asp;

<!--#include file="Connections/connDUfaq.asp" -->
<%
%>
<%
'set rsCount = Server.CreateObject("ADODB.Recordset")
Response.Write MM_connDUfaq_STRING
Response.End
rsCount.ActiveConnection = MM_connDUfaq_STRING
rsCount.Source = "SELECT (SELECT COUNT(*) FROM FAQS) AS FAQ_COUNT, COUNT(*)   AS TYPE_COUNT  FROM TYPES"
rsCount.CursorType = 0
rsCount.CursorLocation = 2
rsCount.LockType = 3
rsCount.Open()
rsCount_numRows = 0
%>
 <link href="assets/DUfaq.css" rel="stylesheet" type="text/css"> <table width="100%" border="0" cellspacing="2" cellpadding="2">
  <tr align="left" valign="middle">
    <td align="left" valign="middle" class="text">There are <b><%=(rsCount.Fields.Item("FAQ_COUNT").Value)%></b> questions in <b><%=(rsCount.Fields.Item("TYPE_COUNT").Value)%></b> categories</td>
    <form action="search.asp" method="get" name="search" id="search">
      <td align="right">
        <input name="keyword" type="text" class="form" id="keyword" size="25">
        <input name="Search" type="submit" class="form" id="Search" value="Search">
      </td></form>
  </tr>
</table>
<%
rsCount.Close()
%>
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17156846
And heres the code for inc_default.asp;

<!--#include file="Connections/connDUfaq.asp" -->
<%
%>
<%
set rsTypes = Server.CreateObject("ADODB.Recordset")
rsTypes.ActiveConnection = MM_connDUfaq_STRING
rsTypes.Source = "SELECT *, (SELECT COUNT(*)  FROM FAQS  WHERE FAQ_TYPE = TYPE_ID) AS FAQ_COUNT  FROM TYPES  ORDER BY TYPE_NAME ASC"
rsTypes.CursorType = 0
rsTypes.CursorLocation = 2
rsTypes.LockType = 3
rsTypes.Open()
rsTypes_numRows = 0
%>

<%
Dim HLooper1__numRows
HLooper1__numRows = -2
Dim HLooper1__index
HLooper1__index = 0
rsTypes_numRows = rsTypes_numRows + HLooper1__numRows
%>
<link href="assets/DUfaq.css" rel="stylesheet" type="text/css">
<div class = "links">
  <table border="0" cellspacing="2" cellpadding="2" width="100%">
   
    <tr>
      <td align="center" valign="middle"> <table width="98%" cellpadding="2" cellspacing="2">
          <%
startrw = 0
endrw = HLooper1__index
numberColumns = 2
numrows = -1
while((numrows <> 0) AND (Not rsTypes.EOF))
      startrw = endrw + 1
      endrw = endrw + numberColumns
 %>
          <tr align="center" valign="top">
            <%
While ((startrw <= endrw) AND (Not rsTypes.EOF))
%>
            <td> <table width="100%" border="0" cellspacing="2" cellpadding="2">
                <tr align="left" valign="middle">
                  <td width="22"><img src="assets/folderIcon.gif" width="22" height="18" align="absmiddle"></td>
                  <td class="textBold"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><a href="type.asp?iType=<%=(rsTypes.Fields.Item("TYPE_ID").Value)%>"><%=(rsTypes.Fields.Item("TYPE_NAME").Value)%></a></font> (<%=(rsTypes.Fields.Item("FAQ_COUNT").Value)%>)</td>
                </tr>
                <tr align="left" valign="middle">
                  <td>&nbsp;</td>
                  <td class="textGray"><i><%=(rsTypes.Fields.Item("TYPE_DESCRIPTION").Value)%></i></td>
                </tr>
              </table></td>
            <%
      startrw = startrw + 1
      rsTypes.MoveNext()
      Wend
      %>
          </tr>
          <%
 numrows=numrows-1
 Wend
 %>
        </table></td>
    </tr>
    <tr>
      <td align="center" valign="middle" class="text"><a href="default.asp">Knowledge Base</a>
        | </td>
    </tr>
  </table>
</div>
<%
rsTypes.Close()
%>
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17157035
I am now getting this error;

Dim strPath strPath = Server.MapPath("\newkb\_private\DUfaq.mdb") MM_conDUfaq_STRING = "Provider="Microsoft.Jet.OLEDB.4.0:Data Source=" & strPath

Of course I remarked back in what I had remarked out.
0
 
LVL 54

Accepted Solution

by:
b0lsc0tt earned 500 total points
ID: 17157417
What does the file connDUfaq.asp look like now?

What were the results after making the change while you still had the response.write and response.end lines in?  Did the variable MM_connDUfaq_STRING look correct?  It should have looked something like this ...

   Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\directory\newkb\_private\DUfaq.mdb

Are you creating a connection object at any time?  It looks like that is missing and you will need it when you open the recordset.  It looks like both of your recordset objects use the same database so just one connection object will work.  You would set it and open it before you open the first recordset and then keep it open even after closing the first recordset and opening the second.  You would then close the connection and set the object to nothing after closing the second recordset.

Let me know the contents of that include file and your answers to the stuff above and then I will use that to try to make some changes and show you how to use the connection object.  If you want an idea of what I am talking about first then I have always found this site very helpful and I this page (http://www.w3schools.com/ado/ado_recordset.asp) has some information on the stuff I mentioned.

Let me know if you have any questions about this information.

bol
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17157673
You wrote;
What were the results after making the change while you still had the response.write and response.end lines in?  Did the variable MM_connDUfaq_STRING look correct?  It should have looked something like this ...

   Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\directory\newkb\_private\DUfaq.mdb


 My response:
Dim strPath
 strPath = Server.MapPath("\newkb\_private\DUfaq.mdb")
 MM_conDUfaq_STRING = "Provider="Microsoft.Jet.OLEDB.4.0:Data Source=" & strPath

I am so lost
0
 
LVL 54

Expert Comment

by:b0lsc0tt
ID: 17157718
Thanks for the reply.  It is a complicated problem but stick with it.  What are the contents of that include file (conndufaq.asp)?
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17157777
OK hold the phone. I now have gotten my user frontend to work, thanks to you. Its now my admin end that is not working. Here is the error;

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Cannot open database '(unknown)'. It may not be a database that your application recognizes, or the file may be corrupt.

/admin/Default.asp, line 15
0
 
LVL 54

Expert Comment

by:b0lsc0tt
ID: 17157820
I'm glad to hear that you made progress.  That is great and always helps to relieve frustration.  I know I was relieved.

What is the difference in the code?  Could the admin page be using a line or block of code that was updated on the user front end page?  What do you think is on line 15 since that seems to be an odd spot when I look at the code provided above?

The error message makes it sound like you are using the old Microsoft Access(*.mdb) driver connection method (i.e. ODBC) instead of the method with the Provider and Jet driver.  Is that correct and is that the problem?
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17158035
By changing the driver is how I got the user front end to work. I am going over the code and cannot really find any difference. I wonder if this is not a user permission problem??? In the user side of things I can read from the database, I can also make a few changes there on ratings. But in the Admin side of things, I get to my ASP login page and enter username and password and I get that error I have posted above. Here is a clue (I HOPE), when I access my admin page by http://www.XXXXXXXXXX.com/admin I am prompted for a windows username and password, (my domain). I authenticate and I then go to the admin ASP login page. Let me give you this 500 points and open a new question that you can continue working with me. You have certainly earned the points. Let me know if that is acceptable.
0
 
LVL 54

Expert Comment

by:b0lsc0tt
ID: 17158104
If you feel that your question has moved onto another issue then closing this and opening a new one is appropriate.  If it is still the same issue then I am OK working to get it done.  If you want to bring some new experts and comments to the problem then posting a pointer question (worth 20) in a related topic or in this same topic is appropriate.  See this page (http://www.experts-exchange.com/help.jsp#hi262) for details on those questions if you want.  If you start a new question then please post the URL here so that I can look at that too.

If you still want to work on it here (or even if you post a new question) we will need the code or your script related to that line in the error.  You could also try using response.write to look at the connection string and make sure the database name and path look good.
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17161674
Ok great lets just keep working on the problem here, if needed I can do a pointer question but I feel that you will get this problem fixed. I am glad that you showed me that rule becuase I was not aware of that. Thank You. Ok here is the crazy part of it all. I searched all 36 pages of my code and I cannot find anywhere /admin/Default.asp Where is this error coming from? I would be happy to post any code here that you would like to see.


Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Cannot open database '(unknown)'. It may not be a database that your application recognizes, or the file may be corrupt.

/admin/Default.asp, line 15
0
 
LVL 54

Expert Comment

by:b0lsc0tt
ID: 17161921
I believe you said that you are starting this page by typing in the URL http://www.XXXXXXXX.com/admin.  If so then that should be looking for a default file name, like the one in your error message.  Default.asp, index.asp, index.html, index.htm are just a few of the names that your server will look for when a file name is not specified in the URL.  The order and names depend on the server.  Do you have a file named default.asp in that admin folder?

If you can find the file then what is the code for the connection?  That should be the line the error message mentioned too.  Will the path you are using to the file work from this folder like it did in the other script that is working?

I will probably not be able to respond tomorrow but will definitely be on and able to look at this the day after.

bol
0
 
LVL 5

Author Comment

by:darrenakin
ID: 17170044
B0lsc0tt,
Thank you so much for all your help.
I was able to get all of the problems fixed, it is all up and running. Once again thank you. There is however 1 problem, posted here. http://www.experts-exchange.com/Networking/Microsoft_Network/Q_21929903.html I would appreciate any help with this. Thanks again.
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

I have helped a lot of people on EE with their coding sources and have enjoyed near about every minute of it. Sometimes it can get a little tedious but it is always a challenge and the one thing that I always say is:  The Exchange of information …
Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now