MSSQL Driver
The DBD::Sybase module need access to a Sybase server to run the tests. 
To clear an entry please enter 'undef' 
Sybase server to use (default: SYBASE): MyServer  ----WHAT YOU CALL LOCALLY WITHIN PERL
 
User ID to log in to Sybase (default: sa): danielp  --SQL USERNAME 
Password (default: undef):                                 -- SQL PASSWORD 
Sybase database to use on MyServer (default: undef): MAS  --MSSQL DATABASE
 
 
 
 
 
 
 
 
 
Accessing Microsoft SQL Server 
from Perl 
 
 
Note: From now on I will refer to Microsoft SQL Server as SQL Server.  
Please do not confuse this with a generic sql server.  We can all now pause 
to gripe about the lack of imagination in product naming at Microsoft.
Compiling Freetds
 
Download and compile freetds from
http://www.freetds.org/. 
 
once you unzip and untar it, enter the directory and run:
 
	
	./configure --prefix=/usr/local/freetds 
	--with-tdsver=7.0 
	make 
	make install
	 
 
Configuring Freetds
 
Now we have the freetds compiled, but we still have 
configure it.  This is the part that threw me off and is so different from 
other DBD drivers.  The DBD::Sybase driver will ultimately be affected by 
the contents of the /usr/local/freetds/etc/freetds.conf file.  If that 
file is not configured correctly, your DBD::Sybase connection will fail.
 
Okay, now that we have established there is a  
relationship between the freetds.conf file and the DBD::Sybase module, let's 
edit the freetds.conf file.
 
The strategic modifications I made to the freetds.conf 
file were:
 
1) uncomment the following lines and modify if 
necessary:
 
	
	try server login = yes 
	try domain login = no
	 
 
Note: this forces the module to attempt a database login 
instead of a domain login.  I could not get domain login to work, though I 
will admit I did not try very hard.
 
2) uncomment the following line and modify if necessary:
 
	
	tds version = 7.0
	 
 
This supposedly sets the default tds version to 
establish a connection with.  I have only SQL Server 2000 servers, and they 
won't talk at any lower version.  So I set it to 7.0.  If for some 
reason you had older SQL Servers, you might leave it at the default 4.2.
 
3) create a server entry for my server sql1:
 
[sql1] 
 
	
				host = sql1
	port = 1433
	tds version = 8.0
	
	 
 
Note: My server here is sql1.  Ping sql1 worked, so 
I am sure I can resolve it using DNS.  You can also specifcy an ip address 
instead of the host name.  The sql1 in the brackets is just a descriptor.  
It could be 'superduperserver' and it would still work as long as my 'host =' is 
set correctly.  I tried 'tds version 7.0' for my SQL Sever 2000 and it 
worked.  Version 5.0 though resulted in an error.  You might want to 
verify your SQL Server is listening on port 1433 with a 'netstat -a -n' run from 
the command line on the SQL Server.
 
At this point you can verify your configuration.
 
	
	/usr/local/freetds/bin/tsql -S sql1 -U sqluser
	 
 
You will then be prompted for a password and if 
everything is well, you will see a '1)' waiting for you to enter a command.  
If you can't get the 1) using tsql, I doubt your DBD::Sybase perl code is going 
to work.  Please note that sqluser is not an Active Directory/Windows 
Domain user, but an SQL Server user.
 
Compiling DBD::Sybase
 
Now that we have the freetds library prerequisite for 
DBD::Sybase installed and configured, we can compile the DBD::Sybase perl 
module.  Obtain it from www.cpan.org if 
you haven't already.
 
once you have untarred it and are in the directory, run:
 
	
	export SYBASE=/usr/local/freetds 
	perl Makefile.PL 
	make 
	make install
	 
 
Note: The export line is to let the compilation process 
know where to find the freetds libraries. 
 
 
 
THE MOST IMPORTANT PART OF THE WHOLE PROCESS IS ABOVE.  
When you run perl Makefile.PL, you need to enter in parameters for the MSSQL server such as server(This refers to Local Server, ie what you will call it inside your $dbh->connect() method. It also binds you to one database on the SQL Server, ie ENTER A DEFAULT DATABASE NAME that you will be connecting to.
 
 
 
 
 
 
 
 
 
IF THE MAKE/MAKE INSTALL DOESN'T WORK, 
 
Then change to the extracted directory of DBD-Sybase. 
There you need to patch the file "dbdimp.c" (vi dbdimp.c). Search there for the syntax "syb_init". Add some lines before the function: 
 
	
		
			|   | 
			
			Source code
			 | 
		 
		
			
			
						1
			2
			3
			4
			5
			 
			 | 
			
			
						#undef CS_VERSION_150
			#undef CS_VERSION_125
			#undef CS_VERSION_120
			#undef CS_DATE_TYPE 
			#undef CS_BIGINT_TYPE
			 
			 | 
		 
	
 
 
 
 
 
  
 
10.0.0.9-I have had potential issues with using Sybase driver 1.07, and have successfully installed it using 1.08
 
10.0.0.14 - installed freetds 0.82 and DBD::Sybase 1.09 
 
 DT 
 
 |