Что нового

Работа с MS-SQL 2000

mechlab

Новичок
Сообщения
19
Репутация
0
Научите пожалуйста как можно подключится к sql 2000 и отправить несколько простейших запросов-команд..
Что то ничего не получается..
Если можно с азов..
Если можно с примером..
Заранее спасибо)
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Попробуй это и это.
Я к mssql из autoit никогда не подключался, sms хватало
 
Автор
M

mechlab

Новичок
Сообщения
19
Репутация
0
Спасибо большое..)))
Теперь разбираюсь...
Код:
If _sql_Connect(-1,"server","","testsql","111111") = $SQL_ERROR then


server - это понятно сервер.. тут случайно никаких дополнительных ковычек, слешей не требуется?
testsql - логин
111111 - не взламыевый пароль
Аввторизация какая виндовая или sql?
"" - после сервера - это что такое?
и что означает -1? :smile:
 

axlwor

Скриптер
Сообщения
657
Репутация
147
авторизация - смотри по коду модуля. может там что написано

-1 обычно обозначает последнюю открытую бд или заменяешь на свою, если несколько
 
Автор
M

mechlab

Новичок
Сообщения
19
Репутация
0
ага... )
но такой вариант немного не подходит - с моей машины десятки соединений за день проходят, на разные сервера и разные базы..
Можно как нибудь более точное целеуказание куда логинится задать?)
 
Автор
M

mechlab

Новичок
Сообщения
19
Репутация
0
Урааа))) Заработало)))

If _sql_Connect(-1,"server","MASTER","testsql","111111") = $SQL_ERROR then

..не была указана база..)))



Добавлено:
Сообщение автоматически объединено:

Код:
#include <_sql.au3>
#include <array.au3>


$server = "i6319-app007"
$db = "master"
$login = "testsql"
$pass = "111111"


     _SQL_RegisterErrorHandler()

    $oADODB = _SQL_Startup()
    If $oADODB = $SQL_ERROR then Msgbox(0 + 16 +262144,"Error",_SQL_GetErrMsg())


 If _SQL_Connect(-1,$server ,$db,$login ,$pass) = $SQL_ERROR  then
; Syntax.........:  _SQL_Connect($ADODBHandle,$server, $db, $username, $password)
 Msgbox(0 + 16 +262144,"Error",_SQL_GetErrMsg())
 else
 Msgbox(0,"Ок", "Ok")
 EndIf


Все таки меня смущает $ADODBHandle - соединения идут по последнему созданному в рамах самого процесса скрипта соединению или еще на внешние коннекты смотрит?
 
Автор
M

mechlab

Новичок
Сообщения
19
Репутация
0
Продолжаю свои научные изыскания)))
Как получить значение из таблицы?

Код:
$hData = _SQL_Execute(-1,"SELECT error FROM exell.dbo.BBKS;")
 Local $vString
 $mes = _SQL_FetchData($hData, $vString)


 Msgbox(0,"Ок", $mes)


Елки... 0 это статус возврата... где же данные?

Дает 0, хотя по факту там 2 )))
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Код:
$oADODB = _SQL_Startup()

вот и ставь хэндл $oADODB вместо -1. иначе вообще не имело смысл его получать в переменную

в ответ я только приведу пример автора
Код:
$hData = _SQL_Execute(-1,"SELECT * FROM BBKS;")

    Local $aNames;Variable to store the array data in to
    $iRval = _SQL_FetchNames ($hData, $aNames); Read out Column Names
    If $iRval = $SQL_OK then ConsoleWrite(StringFormat(" %-10s  %-10s  %-10s  %-10s ", $aNames[0], $aNames[1], $aNames[2], $aNames[3]) & @CR)
    _ArrayDisplay($aNames,"Column Names")

    Local $aRow;Variable to store the array data in to
    While _SQL_FetchData ($hData, $aRow) = $SQL_OK; Read Out the next Row
        ConsoleWrite(StringFormat(" %-10s  %-10s  %-10s  %-10s ", $aRow[0], $aRow[1], $aRow[2], $aRow[3]) & @CR)
        _ArrayDisplay($aRow,"Single Row of Data")
    WEnd
 
Автор
M

mechlab

Новичок
Сообщения
19
Репутация
0
ага....
Код:
$oADODB = _SQL_Startup()
- это значит создаем новый описатель сессии...
а если -1, значит следовать по предыдущей сессии..)

Это понято)))
Теперь как извлечь данные из таблицы?)
 
Автор
M

mechlab

Новичок
Сообщения
19
Репутация
0
похоже родил..:

Код:
$hData = _SQL_Execute(-1," select error from exell.dbo.bbks ;")
Local $vString2, $msg

if _SQL_FetchData( $hData, $vString2) = $SQL_OK then
Msgbox(0,"Ок", $vString2 [0])
Else
Msgbox(0 + 16 +262144,"SQL Error",_SQL_GetErrMsg() )
EndIf


[0] - вот из-за этого просидел 3 часа не понимая что не так)
 
Верх