quinta-feira, 11 de março de 2010

Funcao para trabalhar com campos memo

MSMM - Funcao para trabalhar com campos memo na tabela SYP

Sintaxe:

cMemo := MSMM (cChave,nTam,nLin,cString,nOpc,nTabSize,lWrap,cAlias,cCpochave)

onde:

cMemo......: Conteudo retornado, quando leitura. Se o campo chave nao existir, retorna " ".
cChave.....: Chave de acesso ao SYP. Deve ser informada na alteracao e exclusao.
nTam.......: 'Largura' do campo memo.
nLin.......: Linha do SYP (YP_SEQ) a ser retornada na leitura. Se nao informado, retorna todas.
cString....: Conteudo a ser gravado na inclusao ou alteracao.
nOpc.......: 1=gravar (inc/alt); 2=excluir; 3=leitura (default).
nTabSize...: Nao usado.
lWrap......: Nao usado.
cAlias.....: Alias do arquivo onde encontra-se o campo chave. Deve ser informado na inclusao e alteracao.
cCpoChave..: Campo pertencente `a tabela cAlias e que vai conter a chave de acesso ao SYP.

2 comentários:

Saulo R. Lima disse...

Boa tarde, tenho uma rotina que manipula alguns memos da SYP, porém, a rotina esta extremamente lenta devido a manipulação destes memos, já fiz um teste comentando a linha onde esta sendo usado este MSMM e da uma diferença absurda de performance, sabe me dizer se existe alguma maneira para manipular os dados deste memo de forma a não impactar na performance da rotina ?

Ewerton Sobrinho disse...

usa uma query, segue dois modelos de conversao para banco SQL.

select ISNULL(CONVERT(VARCHAR(2047), CONVERT(VARBINARY(2047), SEU_CAMPO_MEMO)),'') AS CAMPO1 ,
IsNull(Cast(Cast(SEU_CAMPO_MEMOAs VarBinary)as VarChar(Max)),'') AS CAMPO2
From SUA_TABELA
WHERE SEU_CAMPO == SEU_FILTRO