Автор | Сообщение |
|
| |
Пост N: 55
Зарегистрирован: 09.09.11
|
|
Отправлено: 13.10.15 16:55. Заголовок: xHarbour и SyBase
Добрый день, давно не был у нас на форуме. Поставлена задача: выбрать данные из нескольких таблиц Sybase и записать их в DBF файлы. Есть исходный текст макроса на Excel, который выбирает данные, но поменялась структура таблиц, их наименование и взаимосвязи между ними... Описание полей и таблиц Sybase есть. Хотелось бы создать модуль в программе на xHarobour и выбирать из таблиц Sybase данные... С чего начать и Как это сделать ? Спасибо.
|
|
|
Новых ответов нет
, стр:
1
2
3
All
[см. все]
|
|
|
| |
Пост N: 5304
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.10.15 18:14. Заголовок: Oskar_AAA пишет: вы..
Oskar_AAA пишет: цитата: | выбрать данные из нескольких таблиц Sybase |
| Что это за формат баз ?
|
|
|
|
| |
Пост 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), " & _
|
|
|
|
| |
Пост N: 675
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.10.15 18:43. Заголовок: Oskar_AAA пишет: Ис..
Oskar_AAA пишет: Можно подключиться через ODBC . Я к сожалению с этим механизмом мало работал , можно посмотреть примеры в харбуре ( там есть на примере MSSQL ). Ну или подскажет кто
|
|
|
|
| |
Пост N: 676
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.10.15 22:00. Заголовок: Haz пишет: Фрагмент..
Haz пишет: Если коротко, то для решения задачи нужно 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 получить и раз таблицы и поля есть - то остальное просто ))
|
|
|
|
| |
Пост N: 57
Зарегистрирован: 09.09.11
|
|
Отправлено: 14.10.15 15:43. Заголовок: HAZ Спасибо, какие б..
HAZ Спасибо, какие библиотеки, Include итд надо подключить.
|
|
|
|
| |
Пост 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 макросах прписан. явно или неявно , но быть должен
|
|
|
|
| |
Пост 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)
|
|
|
|
| |
Пост 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 нет и по прежнему главное - получить коннект
|
|
|
|
| |
Пост N: 59
Зарегистрирован: 09.09.11
|
|
Отправлено: 14.10.15 23:39. Заголовок: скачал ADORDD.zip 20..
|
|
|
|
| |
Пост 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
|
|
|
|
| |
Пост 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
|
|
|
|
|
| постоянный участник
|
Пост 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 и сделать повторную компиляцию.
|
|
|
|
| |
Пост N: 5305
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.10.15 14:22. Заголовок: Andrey пишет: Попро..
Andrey пишет: цитата: | Попробуй удалить все obj и сделать повторную компиляцию |
| +1
|
|
|
|
| |
Пост N: 61
Зарегистрирован: 09.09.11
|
|
Отправлено: 15.10.15 15:25. Заголовок: Добрый вечер, коллег..
Добрый вечер, коллеги. Тоже думал про повторную компиляцию. Но не помню как ее делать.... Obj файлы - где? Нашел в своей сборке ADORDD.prg от 11.06.2009. Obj и С файлы из своих PRG удаляются при каждой сборке EXE модуля...
|
|
|
|
| |
Пост N: 108
Зарегистрирован: 24.04.13
|
|
Отправлено: 16.10.15 16:13. Заголовок: Учитывая что в Harbo..
Учитывая что в Harbour нет норм. драйвера для Sybase, может проще будет написать программу по выгрузке из Sybase в CSV (или SDF ?) на Delphi например, а потом получившийся текстовый файл выгрузить в DBF средствами Harbour или Clipper.
|
|
|
|
| |
Пост N: 62
Зарегистрирован: 09.09.11
|
|
Отправлено: 16.10.15 16:26. Заголовок: Добрый вечер, из SYB..
Добрый вечер, из SYBASE я выгружаю в DBF, но пока приходится набирать запросы по таблицам. Написанием программы в Sybase опыта нет. Но требуется : ввести номер смены, выборка из 4 таблиц записей по заданному номеру смены в 4 файла DBF вот и все.. а далее уже xHarbour
|
|
|
|
| постоянный участник
|
Пост 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. Делай выгрузку на любом языке...
|
|
|
|
| |
Пост 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 получается пустым ?
|
|
|
|
| |
Пост 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'
|
|
|
|
| |
Пост N: 5678
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.05.16 10:36. Заголовок: Oskar_AAA пишет: Er..
Oskar_AAA пишет: цитата: | Error: Unresolved external '_HB_FUN_HB_CODEPAGE_UTF8EX' |
| Harbour ?
|
|
|
Новых ответов нет
, стр:
1
2
3
All
[см. все]
|
|