On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 55
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 13.10.15 16:55. Заголовок: xHarbour и SyBase


Добрый день, давно не был у нас на форуме.
Поставлена задача: выбрать данные из нескольких таблиц Sybase и записать их в DBF файлы. Есть исходный текст макроса на Excel, который выбирает данные, но поменялась структура таблиц, их наименование и взаимосвязи между ними...
Описание полей и таблиц Sybase есть.
Хотелось бы создать модуль в программе на xHarobour и выбирать из таблиц Sybase данные...

С чего начать и Как это сделать ?
Спасибо.


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 53 , стр: 1 2 3 All [только новые]


администратор




Пост N: 5304
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.10.15 18:14. Заголовок: Oskar_AAA пишет: вы..


Oskar_AAA пишет:

 цитата:
выбрать данные из нескольких таблиц Sybase


Что это за формат баз ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 56
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 13.10.15 18:35. Заголовок: Формат таблиц - не з..


Формат таблиц - не знаю...
Фрагмент макроса Excel
Sub LoadFL()

Dim wrkODBC As Workspace
Dim conPubs As Connection
Dim realst As Recordset
Dim restst As Recordset

sql_odbc = Info.[D2].Value ' Источник ODBC
sql_user = Info.[D3].Value ' Пользователь БД
sql_pswd = Info.[D4].Value ' Пароль пользователя БД
wb_StartSh = Info.[D6].Value ' Смена начала
'wb_EndSh = Info.[D7].Value ' Смена окончания

Real1 = " SELECT " & _
" azsno, " & _
" shiftid, " & _
" (select timepoint from shiftslog where shiftslog.shiftid=shiftrep2.shiftid and shiftslog.azsno=shiftrep2.azsno and state=1), " & _


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 675
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 13.10.15 18:43. Заголовок: Oskar_AAA пишет: Ис..


Oskar_AAA пишет:

 цитата:
Источник ODBC



Можно подключиться через ODBC .
Я к сожалению с этим механизмом мало работал , можно посмотреть примеры в харбуре ( там есть на примере MSSQL ).
Ну или подскажет кто

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 676
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 13.10.15 22:00. Заголовок: Haz пишет: Фрагмент..


Haz пишет:

 цитата:
Фрагмент макроса Exce



Если коротко, то для решения задачи нужно

1. Правильный ConnectString для Sybase .
по примеру этого для MSSQL
 
oConnection:Open( "DRIVER={MySQL ODBC 3.51 Driver};" + ;
"server=" + cServer + ;
";database=" + cDataBase + ;
";uid=" + cUserName + ;
";pwd=" + cPassword )

oConnection:Execute( "SELECT * FROM " + cTableName )



2. Правильный SQL запрс ( нужно знать таблицы и поля ) . К примеру SELECT выше

3. Перебрать в цикле весь набор данных ( RecordSet ) типо как тут ( пример был для других целей ))
 
for l := 1 to len(oConnection:aRecordSet)
for c := 1 to len(oConnection:aRecordSet[l])
do case
case valtype(oConnection:aRecordSet[l][c]) == "C"
c_TmpContent := alltrim(oConnection:aRecordSet[l][c])
case valtype(oConnection:aRecordSet[l][c]) == "N"
c_TmpContent := alltrim(str(oConnection:aRecordSet[l][c]))
case valtype(oConnection:aRecordSet[l][c]) == "D"
c_TmpContent := alltrim(DtoC(oConnection:aRecordSet[l][c]))
case valtype(oConexion:aRecordSet[l][c]) == "L"
c_TmpContent := alltrim(oConnection:aRecordSet[l][c])
end case
ТУТ ПИШЕМ В DBF
next
next


PS Главное это oConnection получить и раз таблицы и поля есть - то остальное просто ))

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 57
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 14.10.15 15:43. Заголовок: HAZ Спасибо, какие б..


HAZ
Спасибо, какие библиотеки, Include итд надо подключить.


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 677
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 14.10.15 16:00. Заголовок: Oskar_AAA пишет: к..


Oskar_AAA пишет:

 цитата:
какие библиотеки, Include итд надо подключить

кажется ADO хватит
 
#include "rddsys.ch"
#include "adordd.ch"

и библиотеки
 
adordd
hbusrrdd


PS connectstring должен где-то в EXCEL макросах прписан. явно или неявно , но быть должен

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 58
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 14.10.15 18:20. Заголовок: Haz у меня нет библи..


Haz
у меня нет библиотек ADORDD.Lib, HBUSRRDD.Lib

RDDSYS.Ch, ADORDD.Ch есть

Использую xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6476)


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 678
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 14.10.15 21:10. Заголовок: Это библиотеки Harbo..


Это библиотеки Harbour , уверен в xHarbour есть какие-то аналоги.
Подсказать не могу т.к. работаю только с Harbour.

Точнее бивлиотеки обнаружил в поставке MiniGui Чисто в Harbour есть SDDODBC ( возможно он же в xHarbour )
пример с драйвером MySQL оттуда

 
#require "rddsql"
#require "sddodbc"

#include "simpleio.ch"

REQUEST SQLMIX, SDDODBC

PROCEDURE Main()

LOCAL nConnection, nI, aI

Set( _SET_DATEFORMAT, "yyyy-mm-dd" )

rddSetDefault( "SQLMIX" )
nConnection := rddInfo( RDDI_CONNECT, { "ODBC", "Server=localhost;Driver={MySQL ODBC 5.1 Driver};dsn=;User=test;database=test;" } )
IF nConnection == 0
? "Unable connect to server", rddInfo( RDDI_ERRORNO ), rddInfo( RDDI_ERROR )
RETURN
ENDIF
? nConnection
? rddInfo( RDDI_EXECUTE, "DROP TABLE country" )
? rddInfo( RDDI_EXECUTE, "CREATE TABLE country (CODE char(3), NAME char(50), RESIDENTS int(11))" )
? rddInfo( RDDI_EXECUTE, "INSERT INTO country values ('LTU', 'Lithuania', 3369600),('USA', 'United States of America', 305397000), ('POR', 'Portugal', 10617600), ('POL', 'Poland', 38115967), ('AUS', 'Australia', 21446187), ('FRA', 'France', 64473140), ('RUS', 'Russia', 141900000)" )
? dbUseArea( .T., , "SELECT * FROM country", "country" )
? "LASTREC:", LastRec()
DO WHILE ! Eof()
aI := Array( FCount() )
FOR nI := 1 TO FCount()
aI[nI] := FieldGet( nI )
NEXT
? RecNo(), hb_ValToExp( aI )
dbSkip()
ENDDO
? "LASTREC:", LastRec()
dbCloseAll()

RETURN


ЗЫ. Примеров много,но с SyBase нет и по прежнему главное - получить коннект

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 59
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 14.10.15 23:39. Заголовок: скачал ADORDD.zip 20..


скачал ADORDD.zip 2007 года в архиве есть библиотеки и примеры.
http://www.fivetechsoft.com/files/adordd.zip

будем пробовать...
Спасибо, друзья

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 60
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 15.10.15 06:15. Заголовок: HAZ Доброе утро, ско..


HAZ
Доброе утро,
скомпилировал MYSQL3.prg из архива ADORDD.Zip вылетает при запуске по ошибке
Module: 'adordd.prg' was compiled into PCODE version: 9,this version of xHarbour expects version: 10Module: 'adordd.prg' was compiled into PCODE version: 9,this version of xHarbour expects version: 10

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 679
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 15.10.15 11:05. Заголовок: Oskar_AAA пишет: ск..


Oskar_AAA пишет:

 цитата:
скомпилировал MYSQL3.prg из архива ADORDD.Zip вылетает при запуске по ошибке


Посмотри в примерах xHarbour , уверен там есть не одно использование ODBC
Или велкам в Harbour , в нем с десяток различных примеров наберется точно
PS можешь попробовать еще ADORDD из поставки MiniGui , может он соберется .
в скачанном тобой архиве версия от 2007/05/12 в Minigui - 2008/07/08


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4536
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.10.15 14:11. Заголовок: Oskar_AAA пишет: Mo..


Oskar_AAA пишет:

 цитата:
Module: 'adordd.prg' was compiled into PCODE version: 9,t


Такую ошибку встречал при компиляции новым компилятором при старых obj скомпилированным старым компилятором.
Попробуй удалить все obj и сделать повторную компиляцию.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5305
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.10.15 14:22. Заголовок: Andrey пишет: Попро..


Andrey пишет:

 цитата:
Попробуй удалить все obj и сделать повторную компиляцию


+1

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 61
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 15.10.15 15:25. Заголовок: Добрый вечер, коллег..


Добрый вечер, коллеги.
Тоже думал про повторную компиляцию. Но не помню как ее делать.... Obj файлы - где? Нашел в своей сборке ADORDD.prg от 11.06.2009.
Obj и С файлы из своих PRG удаляются при каждой сборке EXE модуля...


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 108
Зарегистрирован: 24.04.13
ссылка на сообщение  Отправлено: 16.10.15 16:13. Заголовок: Учитывая что в Harbo..


Учитывая что в Harbour нет норм. драйвера для Sybase,
может проще будет написать программу по выгрузке из Sybase в CSV (или SDF ?) на Delphi например,
а потом получившийся текстовый файл выгрузить в DBF средствами Harbour или Clipper.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 62
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 16.10.15 16:26. Заголовок: Добрый вечер, из SYB..


Добрый вечер, из SYBASE я выгружаю в DBF, но пока приходится набирать запросы по таблицам. Написанием программы в Sybase опыта нет. Но требуется : ввести номер смены,
выборка из 4 таблиц записей по заданному номеру смены в 4 файла DBF вот и все.. а далее уже xHarbour


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4537
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.10.15 18:25. Заголовок: azoo пишет: может п..


azoo пишет:

 цитата:
может проще будет написать программу по выгрузке из Sybase в CSV (или SDF ?) на Delphi например,



Из вики:
Возможно использование ряда драйверов базы данных таких языков программирования как Java, C/C++m, PHP, PERL, Python, Ruby, ADO.Net.

Делай выгрузку на любом языке...

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 73
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 28.05.16 10:03. Заголовок: Добрый день, необх..




Добрый день, необходимо перевести из UTF8 в RU866
База DBF уже создана из SYBASE посредством выбора данных по условию и экспортирована в формате DBF.
Программа
xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6476)
Copyright 1999-2009, http://www.xharbour.org http://www.harbour-project.org/
фрагмент кода

REQUEST HB_CODEPAGE_RU866
REQUEST DBFCDX,DBFFPT
HB_SetCodePage( "RU866" )
RDDSetDefault('DBFCDX')
Use UTF8 Alias UTF Exclusive NEW
DbGoTop()
Do While Eof()
Repl Name_866 With HB_UTF8TOSTR(Name,"RU866")
DbSkip()
Enddo

Поле Name_866 получается пустым ?
Добрый день, необходимо перевести из UTF8 в RU866
База DBF уже создана из SYBASE посредством выбора данных по условию и экспортирована в формате DBF.
Программа
xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6476)
Copyright 1999-2009, http://www.xharbour.org http://www.harbour-project.org/
фрагмент кода

REQUEST HB_CODEPAGE_RU866
REQUEST DBFCDX,DBFFPT
HB_SetCodePage( "RU866" )
RDDSetDefault('DBFCDX')
Use UTF8 Alias UTF Exclusive NEW
DbGoTop()
Do While Eof()
Repl Name_866 With HB_UTF8TOSTR(Name,"RU866")
DbSkip()
Enddo

Поле Name_866 получается пустым ?


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 75
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 28.05.16 10:09. Заголовок: Dim Если ставить RE..


Dim

Если ставить
REQUEST HB_CODEPAGE_UTF8EX

Error: Unresolved external '_HB_FUN_HB_CODEPAGE_UTF8EX'

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5678
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.05.16 10:36. Заголовок: Oskar_AAA пишет: Er..


Oskar_AAA пишет:

 цитата:
Error: Unresolved external '_HB_FUN_HB_CODEPAGE_UTF8EX'


Harbour ?


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 53 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 605
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет