The code below can be used against Oracle, SQL Server, or MySQL database table to automatically create an AIM buddy list. The SQL statement should select out a “group_name” field (ideas: a department name such as “Accounting” or “Purchasing”, an office location such as “Taipei” or “New York”, etc.) and an “aim_name” field. The “group_name” will be used as AIM groups, while “aim_name” are the users’ actual registered AIM names. The output file is a flat text file in a format that can be imported into AIM.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' AIM Buddy List Builder ' ' ' ' Description: Builds an AIM buddy list from your database ' ' employee table. ' ' Author: C. Peter Chen ' ' Version Tracker: ' ' 1.0 20081021 Base version ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' option explicit dim dbType, dbHost, dbName, dbUser, dbPass, outputFile, sqlstr ''''''''''''''''' ' Configuration ' ''''''''''''''''' dbType = "oracle" ' Valid values: "oracle", "sqlserver", "mysql" dbHost = "hostName" ' Hostname of the database server dbName = "dbName" ' Name of the database/SID dbUser = "user" ' Name of the user dbPass = "password" ' Password of the above-named user outputFile = "c:buddylist.blt" ' Path and file name of the output CSV file ' SQL statement below; be sure to select out "group_name" and "aim_name" in your SQL statement. sqlStr = "select department_name as group_name, aim_name from employees_table where aim_name is not null order by department_name, aim_name" ''''''''''''''''''''' ' End Configuration ' ''''''''''''''''''''' dim fso, conn 'Create filesystem object set fso = CreateObject("Scripting.FileSystemObject") 'Database connection info set Conn = CreateObject("ADODB.connection") Conn.ConnectionTimeout = 30 Conn.CommandTimeout = 30 if dbType = "oracle" then conn.open("Provider=MSDAORA.1;User ID=" & dbUser & ";Password=" & dbPass & ";Data Source=" & dbName & ";Persist Security Info=False") elseif dbType = "sqlserver" then conn.open("Driver={SQL Server};Server=" & dbHost & ";Database=" & dbName & ";Uid=" & dbUser & ";Pwd=" & dbPass & ";") elseif dbType = "mysql" then conn.open("DRIVER={MySQL ODBC 3.51 Driver}; SERVER=" & dbHost & ";PORT=3306;DATABASE=" & dbName & "; UID=" & dbUser & "; PASSWORD=" & dbPass & "; OPTION=3") end if dim a, showList, prevGroup set a = fso.createtextfile(outputFile) a.writeline ("Config {") a.writeline (" version 1") a.writeline ("}") a.writeline ("User {") a.writeline (" screenName dummyAimName") a.writeline ("}") a.writeline ("Buddy {") a.writeline (" list {") set showList = conn.execute(sqlstr) prevGroup = "placeholder" do while not showList.eof if (showList("group_name") <> prevGroup) then if (prevGroup <> "placeholder") then a.writeline (" }") end if a.writeline (" """ + showList("group_name") + """ {") end if a.writeline (" " + showList("aim_name")) prevGroup = showList("group_name") showList.movenext loop showList.close set showList = nothing a.writeline (" }") a.writeline (" }") a.writeline ("}") ' Close set a = nothing set fso = nothing conn.close set conn = nothing 'You're all done!! Enjoy the file created. msgbox("AIM Buddy List Created!")
Interested in obtaining a generic AIM buddy list import file format? Please see below for an illustration with fictional data.
Config { version 1 } User { screenName dummyAimName } Buddy { list { "Accounting" { MrCFO_fictionalUser BobAtAccounting_fictionalUser JaneDoe_fictionalUser } "Purchasing" { LewisTheBuyer_fictionalUser } "Useless Employees" { PaulJohnson_fictionalUser } } }