работа с FreeTDS

troll

Guest
работа с FreeTDS

Господа! доброе утро, день, вечер!

Стала необходимость работать с MSSQL2000 PHP-скриптами, которые хостятся на линуксовом хостинге.
Поставил FreeTDS, но как проверить работает ли установка ??
где надыбать описание функций, для работы с MSSQL через FreeTDS ??
может кто сталкивался или работал с этой приблудой??
если есть сорс соединения с сервером, запроса и получения данных, скиньте,
плиз, примерчик, оч. нужно, оч срочно (буквально - вчера!)

зараннее благодарен!
 

troll

Guest
FreeTDS устанавливал следующим образом:
1. Скачал, распаковал
2. вошел к каталог freetds, написал:

./configure
make
make install

3. Поправил freetds.conf, вписал туда такие строки:
# Microsoft SQL Server 2000 configuration
[MyServer2000]
host = 192.168.0.4 #адрес сервера
port = 1433 #порт сервера
tds version = 8.0 #версия протокола tds

4. дальше нужно зайти в директорию с исходниками PHP и написать следующее:
./configure --with-mssql=/usr/local (далее идут другие опции)
make
make install

вот тут и возникает проблема:
во первых, ненашел директорию с исходниками PHP(где она находится в Fedora Core 3)?
во вторых, описанные выше команды для каталога исходников PHP, естественно, не выполнились.

подскажите, плиз, как завершить последний шаг инсталяции FreeTDS?

логи пишут:
сall to undefined function: mssql_connect()
насколько я понял tds просто не слинковался с php или как?
 

evgeny2k

Guest
Короче всё очень просто:
собираешь FreeTDS (configure && make && make install или configure --prefix=/usr/local/freetds && make && make install);
качаешь исходники нужного тебе РНР;
распаковываешь;
./configure --help (получаешь список опций);
включаешь всё, что тебе нужно + все, что касается M$SQL;
make & make install ;
идёшь в /usr/local/freetds/etc/freetds.conf (или куда ты его установил) и прописываешь свой DSN ;
на хосте с M$SQL обязательно открываешь порт, состояние порта увидишь с помощью NMAP <IP MSSQL-сервера> , порт 1433.
Вот, собственно, и всё, удачи

Теперь РНР собран с поддержкой FreeTDS.
 

chama

Новичок
Пытаюсь с FreeBSD с помощью PHP работать MSSQL 2000(на которой висит 1С). (apache1.3.34, php 5.0.5 с mssql и iconv)
Сделал все описанное. Работает. Но возникает следующая ошибка(предупреждение)
Warning: mssql_query() [function.mssql-query]: WARNING! Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?'). (severity 16) in /usr/local/www/data-dist/applications/mssql.php on line 8
при попытке прочитать название таблиц в базе данных(они там есть).
Пользуюсь примером с http://php.rinet.ru/manual/ru/ref.mssql.php.
Сам код следующий:
PHP:
if ($con=mssql_pconnect("192.168.1.30:1433","login","pass")){echo "ok<br>";}
else echo "no<br>";
echo ("ConnectID: $con<br>\n");
if (mssql_select_db('[app]', $con)) echo "yes";
else echo no;
$query=mssql_query ( "select * from SYSOBJECTS where TYPE='U' order by NAME" , $con);
while ($row=mssql_fetch_row ( $query )){
   echo "$row[0]<br>";
}
mssql_close($con);
Выводит:
ok
ConnectID: Resource id #2
yes

и дальше повторяются ошибки приведенные выше и название таблиц не выводятся.
Т.е. подсоединение успешно и смена баз то же произошла успешно.
Пользовался http://phpinside.ru/?q=node/252 и http://www.linux.ru/articles/phpmssql/
 

chama

Новичок
440hz
Спасибо проблема была в следующем
ставил tds version = 8.0, а надо было 7.0,
но за client charset = CP1251 спасибо понадобится дальше :)


p.s. сейчас изучаю структуру таблиц 1C
 
Сверху