Click to See Complete Forum and Search --> : removing a comma (,) programatically


blakeph
07-24-2005, 04:06 AM
hi guys! i have a web application that will query the users from our Active Directory, my connection and query strings look like this:

var users = [
<%
Dim con,rs,Com,search_name
Set con = Server.CreateObject("ADODB.Connection")
con.provider ="ADsDSOObject"
Con.Properties("User ID") = "kfmc\"&session("uname")
Con.Properties("Password") = session("pwd")
con.open "Active Directory Provider"
Set Com = CreateObject("ADODB.Command")
Set Com.ActiveConnection = con
Com.CommandText ="select name, sAMAccountname, mail, pager from 'LDAP://10.20.4.20/dc=kfmc,dc=med' WHERE objectCategory='person' and name = '*"+search_name+"*' and ( pager = '3*' or pager = '2*') ORDER BY name"
Set rs = Com.Execute
%>
<%
Do While Not rs.EOF
%>
["<%=rs.Fields("pager")%>", "<% response.write rs("Name")%>", "<% response.write rs("mail")%>"],
<%
rs.MoveNext
Loop
rs.Close
%>
];
and when this query is generated, it will look like this:

["3209", "Abdalla E. Khalil", "akhalil@ourdomain.com"],
["3053", "Abdelsalam A. Ismail", "aismail@ourdomain.com"],
["3228", "Abdul B. Cady", "acady@ourdomain.com"],
["2772", "Abdulaziz S. Aljaser", "aljaser@ourdomain.com"],

is there any way to trim the last comma (,) in the array? because if there is, my application doesn't work. any help would be appreciated. thanks!

buntine
07-24-2005, 04:44 AM
You have it hardcoded into the page. Just remove it.

["<%=rs.Fields("pager")%>", "<% response.write rs("Name")%>", "<% response.write rs("mail")%>"]

Regards.

blakeph
07-24-2005, 05:51 AM
hi buntine!

i just removed it, but my application doesn't work, am getting this error:
Line: 27
Char: 6
Error: 'undefined' is null or not an object

but if i have the following, without a comma at the end of the last array, my application will work properly.:

var users = [

["3209", "Abdalla E. Khalil", "akhalil@ourdomain.com"],
["3053", "Abdelsalam A. Ismail", "aismail@ourdomain.com"],
["3228", "Abdul B. Cady", "acady@ourdomain.com"],
["2772", "Abdulaziz S. Aljaser", "aljaser@ourdomain.com"]

];


Note: the error 'Line 27' refering to, is the following:
var users = [

buntine
07-24-2005, 06:02 AM
Sorry. I misunderstood what you were saying!

Use something like this:

Dim i
Set rs = Com.Execute
For i = 1 To rs.RecordCount
%>
["<%=rs.Fields("pager")%>", "<% response.write rs("Name")%>", "<% response.write rs("mail")%>"]
<%
If i < rs.RecordCount Then Response.Write ","
rs.MoveNext
Next

Regards.

blakeph
07-24-2005, 06:28 AM
thanks buntine!

i updated my code to something like this:

<%
Dim i,con,rs,Com,search_name
Set con = Server.CreateObject("ADODB.Connection")
con.provider ="ADsDSOObject"
Con.Properties("User ID") = "kfmc\"&session("uname")
Con.Properties("Password") = session("pwd")
con.open "Active Directory Provider"
Set Com = CreateObject("ADODB.Command")
Set Com.ActiveConnection = con
Com.CommandText ="select name, sAMAccountname, mail, pager from 'LDAP://10.20.4.20/dc=kfmc,dc=med' WHERE objectCategory='person' and name = '*"+search_name+"*' and ( pager = '3*' or pager = '2*') ORDER BY name"
%>
<%
Do While Not rs.EOF
Set rs = Com.Execute
For i = 1 To rs.RecordCount
%>
["<%=rs.Fields("pager")%>", "<% response.write rs("Name")%>", "<% response.write rs("mail")%>"]
<%
If i < rs.RecordCount Then Response.Write ","
rs.MoveNext
Next
Loop
rs.Close
%>
];

but am getting the following:
Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required: ''

buntine
07-24-2005, 07:44 AM
Remove the outer loop. There is no need for it anymore.

<%
Dim i,con,rs,Com,search_name
Set con = Server.CreateObject("ADODB.Connection")
con.provider ="ADsDSOObject"
Con.Properties("User ID") = "kfmc\"&session("uname")
Con.Properties("Password") = session("pwd")
con.open "Active Directory Provider"
Set Com = CreateObject("ADODB.Command")
Set Com.ActiveConnection = con
Com.CommandText ="select name, sAMAccountname, mail, pager from 'LDAP://10.20.4.20/dc=kfmc,dc=med' WHERE objectCategory='person' and name = '*"+search_name+"*' and ( pager = '3*' or pager = '2*') ORDER BY name"

Set rs = Com.Execute
For i = 1 To rs.RecordCount
%>
["<%=rs.Fields("pager")%>", "<% response.write rs("Name")%>", "<% response.write rs("mail")%>"]
<%
If i < rs.RecordCount Then Response.Write ","
rs.MoveNext
Next
rs.Close
%>
];

blakeph
07-24-2005, 08:17 AM
thanks a lot buntine!:)

buntine
07-24-2005, 05:01 PM
;)