Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / (InterBase 1.5) Relation's между 2 таблцами / 12 сообщений из 12, страница 1 из 1
20.10.2005, 08:36:06
    #33334243
Grumax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(InterBase 1.5) Relation's между 2 таблцами
Только начал ковырять, так что прошу строго не судить.
Попробовал SELECT, INSERT, UPDATE, DELETE вроде пока все получается.
Для примера создал простенькую БД
Country
Rn INTEGERName_Country CHAR(50)Number_Country Numeric(3)0Россия11Франция22Германия33Италия44Англия55Португалия10
City
Rn_city INTEGERRn_Country INTEGERName_City CHAR(50)Name_State CHAR(100)10МоскваМосковская область20НовгородНовгородская область31ПарижФыва42БерлинОлдж
Кинул на форму 2 Grid'а и хотелось бы перемещаясь в Grid'е используещего в качестве источника курсор cCountry, чтобы во втором Grid'е отображалась инфа согласно отношениям между 2 таблицами.
Как реализовать?
Я пишу просто и наверное грубо. Упрощенный код, упуская соответсвующие методы грида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
=SQLEXEC(m.gnConnHandle, "SELECT Rn, Name_Country, Number_Country FROM Country ;
	ORDER BY Number_Country", "cCountry")
LOCAL lnSqlExec, laErrorArray[ 1 ], lnRn
SELECT cCountry
m.lnRn = cCountry.Rn
***************
m.lnSqlExec=SQLEXEC(m.gnConnHandle, "SELECT Rn_city, Rn_Country, Name_City, Name_State FROM City ;
	ORDER BY Name_State, Name_City WHERE Rn_Country=?lnRn", "cCity")
IF m.lnSqlExec==- 1 
	= AERROR(m.laErrorArray)
	* Анализ содержимого массива laError для уточнения причины ошибки
	MESSAGEBOX(m.laErrorArray[ 1 , 3 ])
ENDIF 
SELECT cCity
Пишет, что ошибка в WHERE, хотя такие запросы проходят:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
LOCAL lnSqlExec, laErrorArray[ 1 ], lcName_Country, lnNumber_Country, lnRn
*****
m.lnRn=cCountry.Rn
m.lcName_Country=ALLTRIM(ThisForm.text1.Value)
m.lnNumber_Country=ThisForm.text2.Value
*****
*!*	m.lcName_Country="Испания"
*!*	m.lnNumber_Country= 5 
*****
=SQLSETPROP(m.gnConnHandle, "Transactions",  2 )
m.lnSqlExec=SQLEXEC(m.gnConnHandle, "UPDATE Country SET Name_Country=?lcName_Country, ;
	Number_Country=?lnNumber_Country WHERE Rn=?lnRn")
IF m.lnSqlExec==- 1 
	= AERROR(m.laErrorArray)
	* Анализ содержимого массива laError для уточнения причины ошибки
	MESSAGEBOX(m.laErrorArray[ 1 , 3 ])
ENDIF 
=SQLCOMMIT(gnConnHandle)
*****
Спасибо.

------------------------------------------------------------------------------------
Код: plaintext
Я во все дела суюсь -> всесторонне разовьюсь                                                         Visual FoxPro 8.0
...
Рейтинг: 0 / 0
20.10.2005, 10:13:17
    #33334408
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(InterBase 1.5) Relation's между 2 таблцами
опенсорсные одбц драйвера очень низкого качества. Вероятно просто синтаксис

=?lnRn

драйвером не поддерживается. От easysoft вроде интербеёзные драйвера
нормальные были


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
20.10.2005, 10:15:15
    #33334411
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(InterBase 1.5) Relation's между 2 таблцами
либо как-то не так поддерживается.

изисофтовый вроде около 400 стоит но работает


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
20.10.2005, 11:20:43
    #33334615
sar99
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(InterBase 1.5) Relation's между 2 таблцами
Добрый день!
Я с INTERBASE работаю через АДО , но наверное это один фиг -
запрос посылается на сервер а там твоя переменная lnrn неизвестна
Я бы сделал так:
SELECT cCountry
m.lnRn = ALLT(STR(cCountry.Rn))
***************
m.lnSqlExec=SQLEXEC(m.gnConnHandle, "SELECT Rn_city, Rn_Country, Name_City, Name_State FROM City ;
ORDER BY Name_State, Name_City WHERE Rn_Country=&lnRn", "cCity")
...
Рейтинг: 0 / 0
20.10.2005, 11:30:18
    #33334637
WORKSNS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(InterBase 1.5) Relation's между 2 таблцами
1024
опенсорсные одбц драйвера очень низкого качества. Вероятно просто синтаксис

=?lnRn

драйвером не поддерживается. От easysoft вроде интербеёзные драйвера
нормальные были


Posted via ActualForum NNTP Server 1.3

Драйвер работает абсолютно нормально. Пользуюсь вот этими драйверами. Так что проблема не в них.

Я в такой непонятной ситуции использую IBEXPERT и опробую запрос в нем. Если в нем все проходит нормально, то ищу ошибку в коде. Попробуй этот же селект получить из чего-то другого.
...
Рейтинг: 0 / 0
20.10.2005, 11:37:37
    #33334659
WORKSNS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(InterBase 1.5) Relation's между 2 таблцами
Да, кстати, Interbase не знаю, а вот в FB как-то нарывался на проблему - при создании таблиц использовал нижний регистр, и при запросах получал сообщение об ошибке. Вылечилось только после того как переименовал поля таблиц в верхнем регистре.
...
Рейтинг: 0 / 0
20.10.2005, 14:19:53
    #33335201
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(InterBase 1.5) Relation's между 2 таблцами
одбц стандарт предусматривает несколько уровней соответствия.
Селекты-инсерты на первом уровне а вот биндинг переменных т.е.

myvar="qwerty"
sqlexec(cn,"select ... where field=?myvar"...

уже на верхних. Имплементация полностью зависит от разработчика.

написано ж - на апдейт нормально а на селект не понимает синтаксис

Кстати феникс пару лет назад ещё это не поддерживал, щас не знаю.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
20.10.2005, 14:21:25
    #33335209
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(InterBase 1.5) Relation's между 2 таблцами
это я к тому что проблема именно в драйвере


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
20.10.2005, 15:10:45
    #33335380
Grumax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(InterBase 1.5) Relation's между 2 таблцами
sar99работаю через АДО
Где можно почитать...
То: All
Поменял местами Order и Where всё заработало...ничего не понимаю! (с)

------------------------------------------------------------------------------------
Код: plaintext
Я во все дела суюсь -> всесторонне разовьюсь                                                         Visual FoxPro 8.0
...
Рейтинг: 0 / 0
20.10.2005, 15:36:58
    #33335450
sar99
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(InterBase 1.5) Relation's между 2 таблцами
Для работы с INTERBASE через АДО нужна программа - провайдер.
Если она есть (например IBProvider) , то можно работать собственно
через АДО , для чего можно почитать например книгу
АДО и АДО.NET Полное руководство. автор Майк Гандерлой
изд. КИЕВ "ВЕК+" 2003 (также издана в Питере и Москве)

Можно также работать и через технологию Курсора Адаптера,
что более комфортно (но провайдер все равно нужен!)
эта технология описана в HELP (а если по русски то смотри
FOXTALK N 9 за 2003 год)
эта технология доступна начиная с версии vfp 8.0
...
Рейтинг: 0 / 0
21.10.2005, 04:42:54
    #33336375
WORKSNS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(InterBase 1.5) Relation's между 2 таблцами
Grumax sar99работаю через АДО
Где можно почитать...
То: All
Поменял местами Order и Where всё заработало...ничего не понимаю! (с)

------------------------------------------------------------------------------------
Код: plaintext
Я во все дела суюсь -> всесторонне разовьюсь                                                         Visual FoxPro 8.0


Возьми вот это , почитай, правда это от 6 IB. Вообще на перестановку последовательности операторов в запросе навряд ли нормально отреагирует любой скл сервер. Скачай, не поленись IBExpert и пользуйся им для откатки всех запросов, для создания ХП и т.д. Все станет сразу намного проще и понятнее .
...
Рейтинг: 0 / 0
27.10.2005, 03:31:47
    #33346417
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(InterBase 1.5) Relation's между 2 таблцами
Hi Grumax!

> Поменял местами Order и Where всё заработало...ничего не понимаю! (с)

А чего тут неясного то. Разбаловал вас фокс однако :)
На Oracle или MS SQL тоже нельзя порядок конструкций в SELECT нарушать :)

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / (InterBase 1.5) Relation's между 2 таблцами / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]