Clipper On Line • Ver Tópico - Facilitar criação de tabela no fonte

Facilitar criação de tabela no fonte

Discussão sobre SQL

Moderador: Moderadores

 

Facilitar criação de tabela no fonte

Mensagempor JoséQuintas » 07 Out 2016 16:04

Tava pensando em algo menos radical, tipo isto:

cString := "CREATE TABLE CLIENTES ( " + ;
   CampoMySql( "CODIGO", "I" , 11, 0, .F., "AUTO_INCREMENT" ) + ;
   CampoMySql( "NOME", "V", 100, 0, .T., "DEFAULT ''" ) + ")"

FUNCTION CampoMySql( cName, cType, nLen, nDec, lNull, cCompl )

   LOCAL cText := ""

   cText += cName
   DO CASE
   CASE cType == "C"; cText += "CHAR"
   CASE cType == "D"; cText += "DECIMAL"
   CASE cType == "I" ; cText += "INT"
   CASE cType == "V", cText += "VARCHAR"
   ENDCASE
   cText += " (" + Ltrim(Str(nLen)) + iif( nDecimal == 0, "", ", " + Ltrim( Str(nDecimal) ) ) + ") "
   cText += " " + iif( lNull, "NULL", "NOT NULL" )
   IF ! Empty( cCompl )
      cText += cCompl
   ENDIF
   RETURN cText


Só pra deixar as partes alinhadas, sem encher de string no EXE.
Mesmo assim, parece que não compensa.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Facilitar criação de tabela no fonte

Mensagempor wmanesco » 07 Out 2016 21:25

Tem opção de trabalhar com array, já vi uma vez mas não lembro certinho a estrutura mas a idéia é a seguinte:

FUNCTION CriaTbelas()

   LOCAL aTabela

   FOR EACH aTabela IN EstruturaTabelasSistema()
      //Aqui seria desenvolvido o código montando a string.
   NEXT

RETURN

/****************************************************/
FUNCTION EstruturaTabelasSistema()

   LOCAL aTabelas := {}, aTabela

   //ESTRUTURA
   //NOME, TIPO, TAMANHO, DECIMAL, AUTO INCREMENT (pode ser adicionado mais campos tipo um campo para dizer se é primary key)

   aTabela := {"CLIENTES", {"ID"      , "N", 10, 0, .T. },;
                                       {"NOME", "C", 50, 0, .F. };
                   }

   AAdd(aTabelas, aTabela)

RETURN aTabelas



Algo neste sentido acho que fica bom também sem ser tão radical
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
wmanesco
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 116
Data de registro: 09 Set 2016 13:18
Cidade/Estado: ITAJAI - SC
Curtiu: 13 vezes
Mens.Curtidas: 4 vezes

Facilitar criação de tabela no fonte

Mensagempor JoséQuintas » 07 Dez 2016 14:39

Como eu já comentei uma vez:

A parte mais crítica, aonde temos mais pressa, é pra resolver bugs.
Então o fonte tem que estar direcionado a ver rápido do que se trata.
Na dúvida sobre qual fica melhor, melhor deixar o que permite resolver bugs rapidamente.
Ao não perder tempo com bugs, sobra mais tempo pra criação/melhoria.

Também é interessante já criar estrutura e índices de uma vez, assim qualquer coisa errada já aparece o alerta.

Por enquanto ainda vou mantendo o original do início do post.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Anterior



Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro