02.10.2008 12:28
August
 
Значится так: в Супермаге есть поле документа, тип - строка(255), в нем собсвенно находится номер дока (сч-ф поставщика).

пишу скульный запрос:

SELECT A.CREATEDAT, A.ID, A.CLIENTINDEX, C.SUPPLIERDOC, B.ARTICLE, B.QUANTITY, B.TOTALPRICE, C.SUPPLIERINVOICE
from SUPERMAG.SMDOCUMENTS A, SUPERMAG.SMSPEC B, SUPERMAG.SMWAYBILLSIN C
where (
(A.LOCATIONTO = 32) and
(A.DOCSTATE = 3) and
(A.OPCODE = 0) and
(A.CREATEDAT >= '17.08.08') and
(A.CREATEDAT <='17.08.08') and
(C.ID = A.ID) and
(C.DOCTYPE = A.DOCTYPE) and
(A.ID = B.DOCID) and
(A.DOCTYPE = B.DOCTYPE)
)

поле C.SUPPLIERINVOICE как раз и есть этот номер. проблема заключатся в том, что если номер со звездой, то бишь "12345*" , то почему запрос мне выдает номер "12345". Куда пропала звезда???
02.10.2008 13:38
OlegON
 
Куда он тебе выдает-то? В SQL Plus, например, все нормально.
02.10.2008 13:50
August
 
Connection= Новый COMОбъект("ADODB.Connection");
СтрокаПодключения="Provider=MSDAORA.1;Password=qqq;User ID=supermag;Data Source=s01;Persist Security Info=True";
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Connection;
RecordSet = Новый COMОбъект("ADODB.RecordSet");
Command.CommandText = "SELECT
| A.CREATEDAT, A.ID, A.CLIENTINDEX, C.SUPPLIERDOC, B.ARTICLE, B.QUANTITY, B.TOTALPRICE, C.SUPPLIERINVOICE
| from SUPERMAG.SMDOCUMENTS A, SUPERMAG.SMSPEC B, SUPERMAG.SMWAYBILLSIN C
| where (
| (A.LOCATIONTO = "+ТекКодСклада+") and
| (A.DOCSTATE = 3) and
| (A.OPCODE = 0) and
| (A.CREATEDAT >= '"+ДатаН+"') and
| (A.CREATEDAT <='"+ДатаК+"') and
| (C.ID = A.ID) and
| (C.DOCTYPE = A.DOCTYPE) and
| (A.ID = B.DOCID) and
| (A.DOCTYPE = B.DOCTYPE)
| )";

Command.CommandType = 1;
RecordSet = Новый COMОбъект("ADODB.RecordSet");
RecordSet = Command.Execute();

в рекордсете уже без звезды
02.10.2008 18:08
OlegON
 
А ты рекордсет потом где и как отображаешь?
03.10.2008 01:54
isi
 
Люди, увольте, ADODB.... есть более правильные вещи
03.10.2008 08:53
reddevil
 
Цитата:
isi Люди, увольте, ADODB.... есть более правильные вещи
Дак это у него 1С там выбора как бы и нет.

А по существу делай явные преобразования в текстовый тип TO_CHAR()
03.10.2008 08:58
Mtirt
 
В 1С8 есть еще Com.Connection.
08.10.2008 09:18
August
 
Цитата:
OlegON А ты рекордсет потом где и как отображаешь?
мм, да как бы не важно, просто в отладчике останавливаюсь и смотрю значение поля рекордсета...

Цитата:
isi Люди, увольте, ADODB.... есть более правильные вещи
если подскажете например какие и как с ними работать, буду оч признателен

Цитата:
reddevil
А по существу делай явные преобразования в текстовый тип TO_CHAR()
тип данного поля 100% текстовый, хотя я уже и пробовал преобразовывать строго в число... не помогает...

Цитата:
Mtirt В 1С8 есть еще Com.Connection.
подскажите методы и синтаксис, а если кусок кода скинете (любой) просто как коннектиться из 1С-ки, буду премного благодарен!! ^_^
08.10.2008 12:31
August
 
объясните пожалуйста - "На компьютере должен быть установлен как минимум клиент O4OO." что это за клиент?

мне сейчас выдает ошибку:
Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса
Соединение = Новый COMОбъект("OracleInProcServer.XOraSession");
Часовой пояс GMT +3, время: 16:21.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.