Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Nura
Зарегистрирован: 23.01.2007 Сообщения: 18
|
Добавлено: Ср Июл 25, 2007 1:49 pm Заголовок сообщения: Программное подключение к Оракл |
|
|
Создаю програмно подключение строкой
hdbc = Server_Connect("ORAINET","SRVR=orcl_195.138.0.14;USR=system;PWD=1").
Так вот при такой конструкции, если запускаю строку говорит ошибка в имени или пароле пользователя, а если запускаю ручками, через форму подключения к удаленной СУБД, с этим же именем и паролем - нормально подключается, в чем может быть проблема? |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Ср Июл 25, 2007 2:37 pm Заголовок сообщения: |
|
|
На машине Oracle Client стоит? Там прописан путь до ORCL?
Меня больше смущает указание сервера, может так пройдет:
hdbc = Server_Connect("ORAINET","SRVR=orcl;USR=system;PWD=1"). |
|
Вернуться к началу |
|
|
Nura
Зарегистрирован: 23.01.2007 Сообщения: 18
|
Добавлено: Пт Июл 27, 2007 1:49 pm Заголовок сообщения: |
|
|
Все разобралась. Правильная строка подключения: hdbc =Server_Connect("ORAINET", "SRVR=ORCL_192.168.0.18;UID=System;PWD=1") |
|
Вернуться к началу |
|
|
Vyacheslav
Зарегистрирован: 04.09.2008 Сообщения: 4 Откуда: г. Строитель
|
Добавлено: Чт Сен 04, 2008 12:46 pm Заголовок сообщения: Re: Программное подключение к Оракл |
|
|
Nura писал(а): |
Создаю програмно подключение строкой
hdbc = Server_Connect("ORAINET","SRVR=orcl_195.138.0.14;USR=system;PWD=1").
Так вот при такой конструкции, если запускаю строку говорит ошибка в имени или пароле пользователя, а если запускаю ручками, через форму подключения к удаленной СУБД, с этим же именем и паролем - нормально подключается, в чем может быть проблема? |
Как правильно записать обращение FireBird серверу и базе данных в процедуре hdbc = Server_Connect(...), и есть ли у кого библиотека MISS07.DLL, вышлите на ниженаписанный адрес? Если имеется хорошее описание по MAPBasic отправьте, пожалуйста, на yamric@mail.ru
Заранее благодарю за помощь. |
|
Вернуться к началу |
|
|
Нестеров Валерий
Зарегистрирован: 21.03.2006 Сообщения: 492
|
|
Вернуться к началу |
|
|
Vyacheslav
Зарегистрирован: 04.09.2008 Сообщения: 4 Откуда: г. Строитель
|
Добавлено: Пн Окт 20, 2008 2:29 pm Заголовок сообщения: Проблема долгого обращения к последней строке базы |
|
|
Спасибо за ссылки.
Вот проблема, которую не могу разрешить. На удалённом компьютере находятся базы данных, имеющих по 12000 и более строк. Необходимо со своего компютера подключаться поочерёдно к этим базам и считывать только последние строки данных.
Вот код.
hdbcs = Server_Connect("qelib",region_file)
Server hdbcs Begin Transaction
hstmt = Server_Execute(hdbcs, "Select datetime,lat,lon,speed,course from data")
Server hstmt Bind Column 1 to date_time, datetime_code
Server hstmt Bind Column 2 to lat_var, lat_code
Server hstmt Bind Column 3 to lon_var, lon_code
Server hstmt Bind Column 4 to speed_var, speed_code
Server hstmt Bind Column 5 to course_var, course_code
Server hstmt Fetch Next
while not Server_Eot (hstmt)
Server hstmt Fetch Next
wend
Но при таких больших базах данных считывание длится от получаса до 10 часов. Я видел, что в других готовых проектах процесс доступа к последней строке длится не больше минуты. Но как это осуществить?
Заранее благодарю. :D |
|
Вернуться к началу |
|
|
Нестеров Валерий
Зарегистрирован: 21.03.2006 Сообщения: 492
|
Добавлено: Пн Окт 20, 2008 8:41 pm Заголовок сообщения: |
|
|
Вообще работать с базами лучше через SQL операторы, а не напрямую со строками. Я правда не понял к какого типа базе вы подключаетесь. Если на другом конце СУБД, а не таблица DBF, то обращаясь к ней через SQL сама СУБД будет выбирать все быстро. Главное правильно задать условия запроса, ну и проиндексировать поля, участвующие в условиях запроса. _________________ Жизнь прекрасна!i |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Пн Окт 20, 2008 8:45 pm Заголовок сообщения: |
|
|
А что такое последняя строка в выборке:
Select datetime,lat,lon,speed,course from data
?
По какому критерию она последняя? Намек понятен?
По стандарту SQL если в предложении SELECT не указан предикат ORDER BY, то порядок строк может быть любой.
Поэтому надо указывать всегда ORDER BY если вы закладываетесь на порядок строк. И если вам нужна последняя строка в указанном вами порядке, то просто смените сортировку на обратную.
Например ващ порядок:
ORDER BY datetime
Делаете
ORDER BY datetime DESC
получаете первую строку - она же есть последняя строка в требуемом вами порядке сортировки |
|
Вернуться к началу |
|
|
Vyacheslav
Зарегистрирован: 04.09.2008 Сообщения: 4 Откуда: г. Строитель
|
Добавлено: Ср Окт 22, 2008 3:53 pm Заголовок сообщения: Работа с базами данных |
|
|
Я работаю с базами данных Firebird.
В sql-запросе после служебного слова select до слова from стоит перечисление столбцов, которые надо использовать. |
|
Вернуться к началу |
|
|
|