Что нового

PostgresSQL и AutoIT

modnik

Знающий
Сообщения
138
Репутация
13
Есть программа(Holdem Manager), которая создаёт базу данных postgresSQL и работает с ней. Можно как нибудь присоединиться к этой базе найти там нужные данные?
 

XpycT

Скриптер
Сообщения
380
Репутация
133
modnik
Присоединение и поиск по базе будет происходить с того же компа где и стоит PostgresSQL???



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

Вот в этом сообщении я приводил пример как получить список таблиц.
 
Автор
M

modnik

Знающий
Сообщения
138
Репутация
13
XpycT сказал(а):
modnik
Присоединение и поиск по базе будет происходить с того же компа где и стоит PostgresSQL???



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

Вот в этом сообщении я приводил пример как получить список таблиц.




комп один и тот же


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

так ну вообщуем я разобрался вроде. Теперь чтобы сделать SQL запрос, нужно роделать что то типа:
Код:
#Region Includes
#Include <Array.au3>
#EndRegion Includes
#NoTrayIcon

Global $oMySQLError = ObjEvent("AutoIt.Error", "_MySQLError")

Dim $sDBServerIP = "" ; IP адресс севера с MySQL
Dim $sDBUsername = ""        ; Имя пользователя для подключения к базе данных
Dim $sDBPassword = ""      ; Пароль
Dim $sDatabase   = "test_db"      ; База Данных к которой будем подключаемся

; Подключаемся к Серверу
Global $MySQLConn = ObjCreate("ADODB.Connection")
$MySQLConn.Open("DRIVER={MySQL ODBC 5.1 Driver};SERVER=" & $sDBServerIP & ";DATABASE=" & $sDatabase & ";UID=" & $sDBUsername & ";PWD=" & $sDBPassword & ";PORT=3306")

; Создаем таблицу
Dim $sTableName = "test_tbl"

$MySQLConn.Execute("DROP TABLE `" & $sTableName & "`")

Dim $sCreateTableQuery = "CREATE TABLE `" & $sTableName & "` (`col0` VARCHAR( 15 ) NULL, " & _
                                                                                                                         "`col1` VARCHAR( 15 ) NULL, " & _
                                                                                                                         "`col2` VARCHAR( 15 ) NULL, " & _
                                                                                                                         "`col3` VARCHAR( 15 ) NULL, PRIMARY KEY (`col0`)) " & _
                                                                                "ENGINE = MYISAM"
$MySQLConn.Execute($sCReateTableQuery)

; Добавляем Записи в Таблицу
Dim $sInsertQuery = "INSERT INTO `" & $sTableName & "` (`col0`, `col1`, `col2`, `col3`) " & _
                                                                                             "VALUES ('Col 0 Row 1', 'Col 1 Row 1', 'Col 2 Row 1', 'Col 3 Row 1');"
$MySQLConn.Execute($sInsertQuery)

; Получаем кол-во столбцов в таблице
Dim $ColCount = 0
$oColCountQuery = $MySQLConn.Execute("SHOW COLUMNS IN `" & $sTableName & "`")
With $oColCountQuery
    While Not .EOF
        $ColCount += 1
    .MoveNext
    WEnd
EndWith
MsgBox(0, "MySQL", "Кол-во Столбцов в таблице = " & $ColCount)

; Получаем кол-во строк в таблице
Dim $RowCount = 0
$oRowCountQuery = $MySQLConn.Execute("SELECT COUNT(*) FROM `" & $sTableName & "`")
With $oRowCountQuery
    While Not .EOF
        $RowCount += $oRowCountQuery.Fields(0).Value
    .MoveNext
    WEnd
EndWith
MsgBox(0, "MySQL", "Кол-во Строк в таблице = " & $RowCount)

; Получаем значения из таблицы
Dim $r = 1
Dim $aDBRecords[$RowCount + 1][$ColCount] = [[$RowCount, ""]] ; Создаем массив для хранения данных
Dim $oGetRecords = $MySQLConn.Execute("SELECT * FROM `" & $sTableName & "`")
With $oGetRecords
    While Not .EOF
        For $c = 0 To $ColCount - 1
            $aDBRecords[$r][$c] = $oGetRecords.Fields($c).Value ; Заносим данные в массив

            MsgBox(0, "MySQL", "Столбцец : " & $c & @CRLF & "Строка : " & $r & @CRLF & "Значение : " & $aDBRecords[$r][$c])
        Next
        $r += 1
        .MoveNext
    WEnd
EndWith
_ArrayDisplay($aDBRecords)

; Удаляем Запись из таблицы
Dim $sDereteRecordQuery = "DELETE FROM `" & $sTableName & "` WHERE `col0` = 'Col 0 Row 1'"
$MySQLConn.Execute($sDereteRecordQuery)

; Удаляем только что созданую таблицу
$MySQLConn.Execute("DROP TABLE `" & $sTableName & "`")

; Отключаемся от сервера
$MySQLConn.Close


Func _MySQLError()
    $HexNumber = Hex($oMySQLError.number, 8)

    MsgBox(16, "MySQL Error", "err.description is  : " & @TAB & $oMySQLError.description & @CRLF & _
                                                        "err.windescription  : " & @TAB & $oMySQLError.windescription & @CRLF & _
                                                        "err.number is       : " & @TAB & $HexNumber & @CRLF & _
                                                        "err.lastdllerror is : " & @TAB & $oMySQLError.lastdllerror & @CRLF & _
                                                        "err.scriptline is   : " & @TAB & $oMySQLError.scriptline & @CRLF & _
                                                        "err.source is       : " & @TAB & $oMySQLError.source & @CRLF & _
                                                        "err.helpfile is     : " & @TAB & $oMySQLError.helpfile & @CRLF & _
                                                        "err.helpcontext is  : " & @TAB & $oMySQLError.helpcontext)

    Exit

    SetError(1)  ; to check for after this function returns
EndFunc   ;==>MyErrFunc
 

XpycT

Скриптер
Сообщения
380
Репутация
133
modnik
А какие данные надо вывести из таблицы??
Название Схемы и таблицы??
 
Автор
M

modnik

Знающий
Сообщения
138
Репутация
13
XpycT сказал(а):
modnik
А какие данные надо вывести из таблицы??
Название Схемы и таблицы??

Это ещё пкоа только предстоит выяснить. Я щас в течении двух часов узнал что такое скл запросы, как их делать. Порылся в огромной базе проги вроде нашёл что нужно, но пока ещё точных скл запросов не создал


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

modnik сказал(а):
XpycT сказал(а):
modnik
А какие данные надо вывести из таблицы??
Название Схемы и таблицы??

Это ещё пока только предстоит выяснить. Я щас в течении двух часов узнал что такое скл запросы, как их делать. Порылся в огромной базе проги вроде нашёл что нужно, но пока ещё точных скл запросов не создал
 

XpycT

Скриптер
Сообщения
380
Репутация
133
modnik [?]
так ну вообщуем я разобрался вроде
Скрипт который вы привели подходить для работы с MySQL, а для работы с PostgreSQL он должен выглядит немного по другому.

Вы уверены что программа создаёт базу данных РostgreSQL???
 
Автор
M

modnik

Знающий
Сообщения
138
Репутация
13
XpycT сказал(а):
modnik [?]
так ну вообщуем я разобрался вроде
Скрипт который вы привели подходить для работы с MySQL, а для работы с PostgreSQL он должен выглядит немного по другому.

Вы уверены что программа создаёт базу данных РostgreSQL???

абсолютно уверен. Как я понял, вот работает программа написанная на автоИТ, потом мне понадобятся данные из базы данных, я вставляю определённый скрипт в программу и получаю данные в нужные переменные, правильно?
 

axlwor

Скриптер
Сообщения
657
Репутация
147
ООО. найн :laugh:

ps. Стандарты, конечно, есть. Но каждый движок их реализует (если реализует) немного по разному. Поэтому работают (везде и без особых проблем) только общие конструкции типа select, update, insert etc.
 

XpycT

Скриптер
Сообщения
380
Репутация
133
axlwor [?]
без особых проблем
Хотел бы я посмотреть как без проблем PostgreSQL обработает вот этот запрос
Код:
"INSERT INTO `" & $sTableName & "` (`col0`, `col1`, `col2`, `col3`) ""VALUES ('Col 0 Row 1', 'Col 1 Row 1', 'Col 2 Row 1', 'Col 3 Row 1');"
 

XpycT

Скриптер
Сообщения
380
Репутация
133
OffTopic:
axlwor
Конструкции запросов типа select, update, insert, а также все остальные конструкции запросов в MySQL и PostgreSQL различаются. Поэтому нельзя утверждать что

axlwor[?]
работают (везде и без особых проблем) только общие конструкции типа select, update, insert etc.
 
Верх