C5.5EE
Юзаю связку
Clarion – ODBC – MySql
Система вывода в LIST – описанная Андреем Поповым
http://www.clarionlife.net/content/view/54/29/
Если поля Баз – текстовые, то в лист выводятся без проблем.
Пытаюсь вывести в лист «Разноперые» поля – неудача.
Итак, опишу, что делаю.
В Mysql имеются следующие таблицы:
Sprmat Teams В клаше созданы те же таблицы импортом из MySql, но с !GLO:Owner
Код: Выделить всё
SprMat FILE,DRIVER('ODBC'),OWNER(glo:owner),NAME('SprMat'),PRE(MAT),BINDABLE,THREAD
PRIMARY KEY(MAT:SprMat_ID),PRIMARY
Kod_Key KEY(MAT:Kod)
KEY_Kod KEY(MAT:Kod),DUP,NAME('Kod')
Name_Key KEY(MAT:Name),DUP
NoGr_Key KEY(MAT:NoGr,MAT:BS),DUP
Data_Key KEY(MAT:Name,MAT:Datavv),DUP
FlagKey KEY(MAT:Flag),DUP
Record RECORD,PRE()
SprMat_ID LONG,NAME('SprMat_ID')
Flag BYTE,NAME('Flag')
Kod LONG,NAME('Kod')
Name STRING(150),NAME('Name')
KodEI BYTE,NAME('KodEI')
NoGr STRING(6),NAME('NoGr')
BS STRING(20)
Deb STRING(20),NAME('Deb')
Cena REAL,NAME('Cena')
CenaIzm REAL,NAME('CenaIzm')
Spec BYTE,NAME('Spec')
Poluch STRING(20),NAME('Poluch')
Datavv DATE,NAME('Datavv')
LoginVV STRING(20),NAME('LoginVV')
END
END
Код: Выделить всё
sqlfile FILE,DRIVER('ODBC'),OWNER(glo:owner),NAME('Teams'),PRE(sqlfile),BINDABLE,THREAD
Record RECORD,PRE()
f1 CSTRING(256),NAME('TeamID')
f2 CSTRING(256),NAME('TeamID')
f3 CSTRING(256),NAME('TeamID')
f4 CSTRING(256),NAME('TeamID')
f5 CSTRING(256),NAME('TeamID')
f6 CSTRING(256),NAME('TeamID')
f7 CSTRING(256),NAME('TeamID')
f8 CSTRING(256),NAME('TeamID')
f9 CSTRING(256),NAME('TeamID')
f10 CSTRING(256),NAME('TeamID')
END
END
Код: Выделить всё
!SprMatQueue queue ! Так пробую – не проходит
!Flag CSTRING(256)
!Kod CSTRING(256)
!Name CSTRING(256)
!NoGr CSTRING(256)
!BS CSTRING(256)
!Poluch CSTRING(256)
!Cena CSTRING(256)
!SprMat_ID CSTRING(256)
! end
SprMatQueue queue ! Пробую так – тоже не проходит
Flag like(MAT:Flag)
Kod like(MAT:Kod)
Name like(MAT:Name)
NoGr like(MAT:NoGr)
BS like(MAT:BS)
Poluch like(MAT:Poluch)
Cena like(MAT:Cena)
SprMat_ID like(MAT:SprMat_ID)
end
Код: Выделить всё
! Window Structure
Window WINDOW('Справочник материалов'),AT(,,644,301),FONT('MS Sans Serif',8,,FONT:regular,CHARSET:CYRILLIC),GRAY
LIST,AT(4,46,558,231),USE(?SprMatList),VSCROLL,FORMAT('9R|M*I~Flag~@S3@27R|M~Kod~C@N_6@150L|M~Name~C@s150@25L|M~NoGr~C(2)@s6@71L|M~BS~C' &|
'@s20@80L(1)|M~Poluch~L(2)@s20@40R|M~Cena~L(2)@n10.2@'),FROM(SprMatQueue)
BUTTON('Добавить'),AT(577,47,45,14),USE(?InsertButton)
BUTTON('Изменить'),AT(577,69,45,14),USE(?ChangeButton)
BUTTON('Удалить'),AT(577,90,45,14),USE(?DeleteButton)
BUTTON('Просмотр'),AT(578,119,45,14),USE(?ViewtButton)
BUTTON('Закрыть'),AT(582,234,45,14),USE(?Close)
BUTTON('OK'),AT(197,284,35,14),USE(?OkButton),HIDE,DEFAULT
END
! [Priority 7500]
Код: Выделить всё
SendQuery routine
data
dstr &idynstr
code
free(SprMatQueue)
dstr &= newdynstr()
setcursor(cursor:wait)
open(sqlfile)
dstr.cat('select Flag, Kod, Name, NoGr, BS, Poluch, Cena, SprMat_ID from SprMat where Kod=716') ! Выбираю одну лишь запись, для теста
sqlfile{prop:sql} = dstr.str()
if error()
stop(error() & fileerror())
end
loop
next(sqlfile)
if error() then break.
SprMatQueue.Flag = sqlfile.f1
Message(clip(SprMatQueue.Flag)) ! Проверяю очередь – данные выводятся все правильно
SprMatQueue.Kod = sqlfile.f2
Message(clip(SprMatQueue.Kod)) !ОК
SprMatQueue.Name = sqlfile.f3
Message(clip(SprMatQueue.Name)) !ОК
SprMatQueue.NoGr = sqlfile.f4
Message(clip(SprMatQueue.NoGr)) !ОК
SprMatQueue.BS = sqlfile.f5
Message(clip(SprMatQueue.BS)) !ОК
SprMatQueue.Poluch = sqlfile.f6
Message(clip(SprMatQueue.Poluch)) !ОК
SprMatQueue.Cena = sqlfile.f7
Message(clip(SprMatQueue.Cena)) !ОК
SprMatQueue.SprMat_ID = sqlfile.f8
Message(clip(SprMatQueue.SprMat_ID)) !ОК
add(SprMatQueue)
end
select(?SprMatList,1)
select(?SprMatList)
setcursor()
dstr.release()
Жаль, нельзя приаттачить еще один файл, но смысл такой -
В поле Код выводится цена,
В поле Name выводится ID,
В поле Цена выводятся нули и всё.
То бишь, что – то выводится, что – то нет, а то, что выводится, попадает непонятно куда…
Пробовал описывать через виртуальный файл, как svru писал в топике:
http://forum.clarionlife.net/phpbb/view ... f=6&t=2114
Но, увы…