• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Lotus и MySQL (ODBC)

  • Автор темы yerke
  • Дата начала
Y

yerke

Привет всем знатокам Лотуса!

Подскажите, как импортнуть данные в MySQL (on Linux) из Lotus (on NT)?
 
S

Sandr

Да нет, много способов на самом деле... Это я так...
Используйте ОDBC connectors.. DECsы ам всякие...
 
Y

yerke

Sandr
сделал через mysql odbc connector
минус № 1: работает тока там где установлен дрова от mysql odbc connector и при настроенном источнике данных
минус № 2: делаю экспорт с помощью лотус (используя mysql odbc connector) из базы мускула в базу лотуса,
кодировка таблиц и полей мускула на ютф-8 и через пхп все данные отображаются нормально

но если скинуть данные мускула на лотусовское поле, то получается абра кадабра
пробовал скинуть эти данные в текстовый файл через нотесстрим с чарсетом ютф-8, результат тотже = абра кадабра

ПОЧЕМУ
:(
 
K

K-Fire

в настройках ODBC-драйвера на 2й закладке в Initial Statement написать SET NAMES cp1251; (точка с запятой обязательна).

А по поводу настройки драйверов - лучше запускать код синхронизации на сервере, там же и ставить драйвер в единственном числе
 
30.05.2006
1 345
12
BIT
0
в настройках ODBC-драйвера на 2й закладке в Initial Statement написать SET NAMES cp1251; (точка с запятой обязательна).

А по поводу настройки драйверов - лучше запускать код синхронизации на сервере, там же и ставить драйвер в единственном числе
Во-во, поддерживаю.
Про кодировки: в LSX есть старинный баг. При работе с Oracle ловится 100%-тно. Я постил его в IBM - не сознаются.
Workaround - воспользоваться возможностями NotesStream и аналогичным LCStream. Там есть перекодировки
 
Y

yerke

Вообще странно, что юникод не катит, должен.
А кусочек кода можете представить на публику?
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">кусочек кода</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='vb'>Option Public
Option Declare
Uselsx "*LSXODBC"

Dim con As ODBCConnection
Dim qry As ODBCQuery
Dim result As ODBCResultSet
'=
Dim TITLE
Dim TEXTS
'=
Dim session As NotesSession
Dim stream As NotesStream
Dim fn As String

Sub Initialize
Set con = New ODBCConnection
Set qry = New ODBCQuery
Set result = New ODBCResultSet
'=
Set qry.Connection = con
Set result.Query = qry
'=
con.ConnectTo("Lotus_MySQL")
qry.SQL = "SELECT * FROM News"
'=check if the qwery is ok
If Not result.Execute Then
Messagebox result.GetExtendedErrorMessage,, _
result.GetErrorMessage
Exit Sub
End If
'=check rows
If Not result.IsResultSetAvailable Then
Messagebox "Result set not available",, _
"No result set"
Exit Sub
End If
If result.NumRows=0 Then
Messagebox "No rows",, _
"No result set"
Exit Sub
End If
'=
If Dir$("C:\Temp",16)="" Then Mkdir "C:\Temp"
fn="C:\Temp\Lotus_MySQL_ODBC_UTF-8.txt"
'=
Set session = New NotesSession
Set stream=session.CreateStream
Call stream.Open(FN, "utf-8") '= Call stream.Open(FN, "unicode") tozhe ne katit
'=
Do
result.NextRow '=in first call NextRow return 1-st row
Call Result.GetValue("TITLE", TITLE)
Call Result.GetValue("TEXTS", TEXTS)
'=
Stream.WriteText(Cstr(TITLE)+chr(13))
Stream.WriteText(Cstr(TEXTS)+chr(13))
'=
Loop Until result.IsEndOfData
'=
result.Close(DB_CLOSE)
con.Disconnect
'=
Call Stream.Close
End Sub[/CODE]
в настройках ODBC-драйвера на 2й закладке в Initial Statement написать SET NAMES cp1251; (точка с запятой обязательна).
не помогает

?????
 
V

VooDoo

а раскажите чуть подробнее пожалуйста, я в этом вопросе ламер полный. Что собой представлет конектор де можно взять?

Спасибо
 

puks

Lotus Team
03.02.2007
1 919
55
BIT
3
Чтобы пользоваться коннектором, тебе придется писать на скрипте. Открываешь хэлп разработчика и смотришь ODBC.
 
V

VooDoo

Ок. Попробую самостоятельно что-то сделать. Ждите ламерских вопросов ))))

Спасибо большое
 
D

Dimly

LCStream не пашет... Из результирующего LCFieldList уже данные не просто в UTF-8 - а искаженные неверной кодировкой содединения.

Есть еще мысли ? Или только АДО ? Есть наработки по АДО ?

в настройках ODBC-драйвера на 2й закладке в Initial Statement написать SET NAMES cp1251; (точка с запятой обязательна).

Не нашел.. MicroSoft Access Driver не имеет второй закладки настроек
 
D

Dimly

Когда можно и удовлетворяет код на скрипте - яву в сад. Она хороша для илишеств которые лотусу не под силу.

При работе через ОДБС - дохнет UTF-8.
Лечится работой ADO через ОДБС, или даже напрямую через ADO. Оба имеют плюсы и минусы из-за настроек или расположения файлов.

Вот кусок варианта 1
Код:
	Set connect=CreateObject("ADODB.Connection")
connect.Properties("User ID") = "login"
connect.Properties("Password") = "pass"
connect.Open("DSN=<имя ОДБС конектора>")
Set cmd=CreateObject("ADODB.Command")
Set cmd.ActiveConnection=connect

strSelect = | select * From table where ... |

cmd.CommandText= strSelect

Set record=cmd.Execute()

Вот кусок варианта 2
Код:
' Create ADO Connection Component to connect with database
Set oConn = CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFileName
' Execute a SQL query and store the results within recordset 
Set oRs = oConn.Execute("SELECT FirstName,LastName,Company From Contacts")

Do While (Not oRs.eof)
.....
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
яб не посылал яву в сад и особливо в этом случае (а ежели дорог скрипт - LS2J) ;)
и причина проста - установка и настройка пердулек типа ОДБЦ и АДО - гимор, а уж о переносимости и воще не стоит заикаться
и уж тем паче - смешно это выглядит для мускуля, родина кот. - точно не винда
 
A

allex

Через все замечательно работает, и UTF-8 отлично понимается

Зато решается проблема переносимости кода. Переустановили винду или на другой машине решили поставить клиента, а про ODBC забыли...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!