por Add Komoncharoensiri, Director de Serviços Técnicos da 4D Inc
Como desenvolvedor 4D, tem de acompanhar os novos avanços 4D é continuamente enviado. Para além de dicas e truques fornecidos pela equipa de produto, as Dicas Técnicas são outra referência para aprender alguns dos conceitos 4D.
Este artigo cobre 4 dicas:
- Como tratar os caracteres curinga SQL como uma string literal
- Programmaticamente obter o nome do projecto
- Os métodos preventivos sob a mesma cadeia de chamadas também devem ser preventivos
- Criar um novo documento View Pro com base numa Folha
Como Tratar os Caracteres Selvagens SQL como Corda Literal?
Ao contrário do 4D, que tem apenas um wildcard (“@”), SQL tem vários wildcards (ex. “%”, “?”, “_”, “#”, etc.). SQL utiliza caracteres curinga para substituir um ou mais caracteres de uma cadeia. Veja aqui uma lista de caracteres curinga SQL. Os wildcards SQL são predominantemente utilizados com o operador LIKE e a cláusula WHERE para procurar um padrão especificado numa coluna.
Ao procurar por cadeias que contenham caracteres curinga SQL utilizando o operador WHERE/LIKE em SQL 4D, os caracteres curinga têm de ser evitados para serem tratados como caracteres literais. A cláusula ESCAPE é suportada no operador LIKE para indicar o carácter de fuga.
Por exemplo, digamos que os dados a consultar contêm “Customer_1”, “Customer_11”, “Employee_1”, e “Employee_11”. O objectivo é consultar todas as cordas que terminam com “_1”.
Uma vez que o sublinhado (“_”) é um dos caracteres curinga em SQL, deve ser evitado para ser tratado como um carácter literal. Isto pode ser escrito como tal.
ARRAY TEXT($results; 0)
Begin SQL
SELECT ID from Table_1
WHERE Field_2 LIKE '%\_1' ESCAPE '\'
INTO : $results
End SQL
Um carácter de contrabarra (“\”) é colocado em frente do sublinhado (“_”), e depois a contrabarra é definida como o carácter de fuga. O carácter de fuga faz com que o SQL trate o seguinte carácter como um carácter literal.
Programmaticamente obter o nome do projecto.
Quando se trabalha em modo de projecto, por vezes é necessário o nome da aplicação do projecto. Para obter o nome do projecto programmaticamente, utilizar o comando Folder com a constante fk da pasta da base de dados. A propriedade “nome” do objecto da pasta devolvida é o nome do projecto. Por exemplo, dado que um projecto é criado com o nome “projecto de exemplo”, na linha seguinte:
$projectName:=Folder(fk database folder).name
$projectName retornará “projecto de exemplo” na aplicação do projecto.
Os métodos preventivos sob a mesma cadeia de chamadas também devem ser preventivos
Todos os métodos dentro dessa mesma cadeia de chamadas devem também ser preemptivos/seguros quando se trabalha com um método preemptivo. Isto inclui métodos típicos de projecto e métodos dentro de métodos de classe como a colecção.sort() onde o 1º argumento seria um nome de método.
Além disso, os métodos thread-safe incluirão condições como, por exemplo
- Deve ter a propriedade “Pode ser executado em processos preventivos” ou “indiferente” activada
- Não deve incluir plugins não seguros para a rosca
- Não deve utilizar nenhuma variável interprocessada
- Não deve chamar comandos relacionados com a interface (por exemplo, DIALOGO)
Criação de um novo documento VP com base numa Ficha
É possível criar um novo documento 4D View Pro baseado numa folha específica de outro documento 4D View Pro.
Abaixo está um método utilitário que tomará o nome da área View Pro como primeiro parâmetro e o número de índice da folha desejada para criar um novo documento contendo apenas a folha como um objecto:
// VP_Extract_Sheet
#DECLARE($vpAreaName_t : Text; \
$sheetIdx_l : Integer)\
->$newVP_ob : Object
var $srcVP_ob : Object
$srcVP_ob:=VP Export to object($vpAreaName_t)
$newVP_ob:=OB Copy($srcVP_ob)
$newVP_ob.spreadJS.sheets:=New object( \
VP Get sheet name($vpAreaName_t; $sheetIdx_l); \
$newVP_ob.spreadJS.sheets[VP Get sheet name($vpAreaName_t; $sheetIdx_l)])
$newVP_ob.spreadJS.activeSheetIndex:=0
$newVP_ob.spreadJS.sheetCount:=1
Isto permitirá que folhas específicas de um documento VP ou qualquer documento importado para uma área VP sejam extraídas como o seu próprio documento VP.
Embrulhar
Aí tem, as nossas 4 dicas e truques para Abril! Espero que tenham aprendido algo novo e que os apliquem na vossa codificação diária.
Se gostou das dicas acima, encontrará mais na Base de Conhecimentos 4D, uma biblioteca de informação sobre a tecnologia 4D onde dicas técnicas semanais e técnicas mensais são constantemente publicadas. Tem vindo a ajudar os clientes a encontrar respostas para resolver os seus problemas há anos e continuará a fazê-lo nos próximos anos.