One command, too much insertions...

Ask a Question related to Coldfusion Database Access, Design and Development.

  1. #1

    Default One command, too much insertions...

    I'm facing an odd problem...

    Sometimes, when I insert a single record into a table, it turns out that
    multiple equal records get inserted.
    This has already produced up to 27 records in a 3 seconds time and up to 12 in
    one single second! The number of "copies" is random. It can go from 2 to 27, as
    mentioned before.
    I simply can't understand how this happens as there is absolutely no loop in
    my code.
    Also, it only happens in one table whose definition is further below.

    Has anyone come across such a situation too?



    About the system:

    CF Version: MX 6,1,0,63958 Standard Edition
    Operating System: UNIX (Linux)
    OS Version: 2.4.20-20.8smp
    Java version: 1.4.2
    Java VM Specification Version: 1.0
    Java VM Version: 1.4.2-b28
    Java VM Arguments: -server -Dsun.io.useCanonCaches=false -XX:MaxPermSize=128m
    -XX:+UseParallelGC
    Java Specification Version: 1.4
    Java Class Version: 48.0


    About the database/datasource:

    MySQL 3.23.56
    Driver: the one included with CFMX 6.1


    About the table:

    Type: MyISAM

    CREATE TABLE `TB_Membros` (
    `Memb_ID` mediumint(20) NOT NULL auto_increment,
    `Memb_Utilizador` varchar(60) NOT NULL default '',
    `Memb_Senha` varchar(50) NOT NULL default '',
    `Memb_Nome` varchar(150) NOT NULL default '',
    `Memb_Email` varchar(60) default NULL,
    `Memb_Telefone1` varchar(12) NOT NULL default '',
    `Memb_Telefone2` varchar(12) default NULL,
    `Memb_Fax` varchar(12) default NULL,
    `Memb_DataAdesao` datetime NOT NULL default '0000-00-00 00:00:00',
    `Memb_EmailHTML` tinyint(4) NOT NULL default '1',
    `Memb_Morada` varchar(150) NOT NULL default '',
    `Memb_CPostal1` varchar(4) NOT NULL default '',
    `Memb_CPostal2` char(3) default NULL,
    `Memb_CPostal` varchar(10) NOT NULL default '',
    `Memb_Localidade` varchar(150) NOT NULL default '',
    `Memb_Contribuinte` varchar(15) NOT NULL default '',
    `Memb_AceitaPublicidade` tinyint(4) NOT NULL default '0',
    `Memb_Creditos` mediumint(6) NOT NULL default '0',
    `Memb_UltimoLogin` datetime default NULL,
    `Memb_FimBloqueio` datetime default NULL,
    `Memb_Activo` tinyint(4) NOT NULL default '1',
    `Memb_Provisorio` tinyint(4) NOT NULL default '0',
    `Memb_URL` varchar(150) NOT NULL default '',
    `Memb_Logotipo` varchar(100) NOT NULL default '',
    `Memb_Modulo` varchar(150) NOT NULL default '',
    `MeTi_ID` tinyint(4) NOT NULL default '1',
    `Memb_AnunciosPossiveis` smallint(4) NOT NULL default '1000',
    `Memb_PeriodoAnuncios_Inicio` date NOT NULL default '0000-00-00',
    `Memb_PeriodoAnuncios_Fim` date NOT NULL default '0000-00-00',
    `Pais_ID` smallint(6) NOT NULL default '1',
    `Memb_IPRegisto` varchar(15) default NULL,
    `Memb_URLReferencia` varchar(255) NOT NULL default '',
    PRIMARY KEY (`Memb_ID`),
    UNIQUE KEY `Memb_ID` (`Memb_ID`),
    KEY `Memb_ID_2` (`Memb_ID`),
    KEY `Pais_ID` (`Pais_ID`)
    ) TYPE=MyISAM COMMENT='Membros' AUTO_INCREMENT=1 ;



    lx_xpto Guest

  2. Similar Questions and Discussions

    1. Acrobat 6.01: File Command disappears on Command Bar
      On the Command Bar (File, Edit, View, etc.) the File Command disappears in many Acrobat operations. Is there a parameter available to insure that...
    2. RUN/execute a Command-Line command from an ASP page
      Hi, I need to RUN/execute a Command-Line command from an ASP page. This is the command: sse45.exe -i k:\o\2.wmv -o k:\o\2.shh -w 128 -df 0 -m 2...
    3. RUN/execute a Command-Line command from an ASP page.
      Hi, I need to RUN/execute a Command-Line command from an ASP page. This is the command: sse45.exe -i k:\o\2.wmv -o k:\o\2.shh -w 128 -df 0 -m 2...
    4. Windows Explorer Right Click Command (+ Custom Command Script)
      Ok got a tricky question about custom scripts, I would like to add a Windows Explorer Right Click Command - that allows me to select an image/s...
    5. Multi command files and running them from the command prompt
      Use the -td§ option . Details are in the section titled Command Line Processor Options in the Command Reference. "Derek Clarkson"...
  3. #2

    Default Re: One command, too much insertions...

    Could you post the code around your insert statement?
    jdeline Guest

  4. #3

    Default Re: One command, too much insertions...

    Here goes the code. Basically, if I get a variable telling me to create a
    record (VARIABLES.CriarRegisto), I do it.
    First, I pick up a new password (Method: CriarSenhaUtilizador), then, there
    are two ways you can go. You either make a
    quick registration (ARGUMENTS.RegistoRapido) or you do the full one. In the
    end, I send an email to the new member.
    Hope the code is explicit enough. The lines before the ones I send do a table
    check to see if the email is already in the database.
    The record is created only if the email is a new one. Otherwise, an Update is
    done.


    <CFIF VARIABLES.CriarRegisto>
    <CFTRY>
    <CFIF NOT Len(ARGUMENTS.Memb_Senha)>
    <CFINVOKE COMPONENT="#PastaComponentes#.utilizadores"
    METHOD="CriarSenhaUtilizador" RETURNVARIABLE="VARIABLES.Memb_Senha"
    UtilizadorSistema ="#ARGUMENTS.UtilizadorSistema#"
    DataSource ="#ARGUMENTS.DataSource#"/>
    <CFELSE>
    <CFSET VARIABLES.Memb_Senha=ARGUMENTS.Memb_Senha>
    </CFIF>

    <!--- Insere o registo --->
    <CFIF ARGUMENTS.RegistoRapido>
    <CFQUERY NAME=InserirRegisto DATASOURCE="#ARGUMENTS.DataSource#">
    INSERT INTO TB_Membros
    (Memb_Utilizador,Memb_Senha,Memb_Email,Memb_DataAd esao,Memb_Provisorio,Memb_IPRe
    gisto)
    VALUES (
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_Utilizador#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="60">,
    <CFQUERYPARAM VALUE="#LCase(Hash(VARIABLES.Memb_Senha))#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="50">,
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_Email#" CFSQLType="CF_SQL_VARCHAR"
    MAXLENGTH="60">,
    #Now()#,
    0,
    <CFQUERYPARAM VALUE="#CGI.REMOTE_ADDR#" CFSQLType="CF_SQL_VARCHAR"
    MAXLENGTH="15">
    )

    </CFQUERY>
    <CFELSE>
    <CFQUERY NAME=InserirRegisto DATASOURCE="#ARGUMENTS.DataSource#">
    INSERT INTO TB_Membros (
    Memb_Utilizador,Memb_Senha,Memb_Nome,Memb_Email,
    Memb_Telefone1,Memb_Telefone2,Memb_Fax,
    Memb_DataAdesao,Memb_EmailHTML,
    Memb_Morada,Memb_Localidade,
    Memb_CPostal,
    Memb_Contribuinte,Memb_AceitaPublicidade,Memb_Cred itos,
    Memb_Activo,Memb_Provisorio,
    Memb_URL,Memb_Logotipo,Memb_Modulo,MeTi_ID,
    Memb_AnunciosPossiveis

    <CFIF IsDefined("ARGUMENTS.Memb_PeriodoAnunciosInicio")>
    ,ARGUMENTS.Memb_PeriodoAnunciosInicio
    </CFIF>
    <CFIF IsDefined("ARGUMENTS.Memb_PeriodoAnunciosFim")>
    ,ARGUMENTS.Memb_PeriodoAnunciosFim
    </CFIF>
    ,Pais_ID
    ,Memb_IPRegisto
    ,Memb_URLReferencia
    )
    VALUES (
    <CFIF ARGUMENTS.Memb_Provisorio>
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_Utilizador#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="60">,
    <CFQUERYPARAM VALUE="#LCase(Hash(VARIABLES.Memb_Senha))#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="50">,
    '',
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_Email#" CFSQLType="CF_SQL_VARCHAR"
    MAXLENGTH="60">,
    '','','',
    #Now()#,
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_EmailHTML#"
    CFSQLType="CF_SQL_TINYINT">,
    '','',
    '',
    '',
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_AceitaPublicidade#"
    CFSQLType="CF_SQL_TINYINT">,
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_Creditos#"
    CFSQLType="CF_SQL_INTEGER">,
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_Activo#"
    CFSQLType="CF_SQL_TINYINT">,
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_Provisorio#"
    CFSQLType="CF_SQL_TINYINT">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_URL)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="150">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_Logotipo)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="100">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_Modulo)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="150">,
    <CFQUERYPARAM VALUE="#ARGUMENTS.MeTi_ID#" CFSQLType="CF_SQL_TINYINT">,
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_AnunciosPossiveis#"
    CFSQLType="CF_SQL_SMALLINT">
    <CFELSE>
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_Utilizador)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="60">,
    <CFQUERYPARAM VALUE="#LCase(Hash(VARIABLES.Memb_Senha))#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="50">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_Nome)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="150">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_Email)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="60">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_Telefone1)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="12">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_Telefone2)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="12">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_Fax)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="12">,
    #Now()#,
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_EmailHTML#"
    CFSQLType="CF_SQL_TINYINT">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_Morada)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="150">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_Localidade)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="150">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_CPostal)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="10">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_Contribuinte)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="15">,
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_AceitaPublicidade#"
    CFSQLType="CF_SQL_TINYINT">,
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_Creditos#"
    CFSQLType="CF_SQL_INTEGER">,
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_Activo#"
    CFSQLType="CF_SQL_TINYINT">,
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_Provisorio#"
    CFSQLType="CF_SQL_TINYINT">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_URL)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="150">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_Logotipo)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="100">,
    <CFQUERYPARAM VALUE="#Trim(ARGUMENTS.Memb_Modulo)#"
    CFSQLType="CF_SQL_VARCHAR" MAXLENGTH="150">,
    <CFQUERYPARAM VALUE="#ARGUMENTS.MeTi_ID#" CFSQLType="CF_SQL_TINYINT">,
    <CFQUERYPARAM VALUE="#ARGUMENTS.Memb_AnunciosPossiveis#"
    CFSQLType="CF_SQL_SMALLINT">
    </CFIF>
    <CFIF IsDefined("ARGUMENTS.Memb_PeriodoAnunciosInicio")>
    ,<CFQUERYPARAM VALUE="#ARGUMENTS.Memb_PeriodoAnunciosInicio#"
    CFSQLType="CF_SQL_DATE">
    </CFIF>
    <CFIF IsDefined("ARGUMENTS.Memb_PeriodoAnunciosFim")>
    ,<CFQUERYPARAM VALUE="#ARGUMENTS.Memb_PeriodoAnunciosFim#"
    CFSQLType="CF_SQL_DATE">
    </CFIF>
    ,<CFQUERYPARAM VALUE="#ARGUMENTS.Pais_ID#" CFSQLType="CF_SQL_SMALLINT">
    ,<CFQUERYPARAM VALUE="#CGI.REMOTE_ADDR#" CFSQLType="CF_SQL_VARCHAR"
    MAXLENGTH="15">
    ,'#CGI.HTTP_REFERER#'
    )
    </CFQUERY>
    </CFIF>

    <!--- L? o novo ID --->
    <CFQUERY NAME=LerID DATASOURCE="#ARGUMENTS.DataSource#">
    SELECT Memb_ID,Memb_Utilizador
    FROM TB_Membros
    ORDER BY Memb_ID DESC
    LIMIT 0,1
    </CFQUERY>

    <CFSET Funcao.Erro=0>
    <CFSET Funcao.Mensagem="Registo criado.<BR>">
    <CFSET
    Funcao.Resultado="#LerID.Memb_ID#,#VARIABLES.Memb_ Senha#,#LerID.Memb_Utilizador#
    ">

    <CFCATCH TYPE="any">
    <CFSET Funcao.Erro=1>
    <CFSET Funcao.Mensagem="O registo n?o foi criado.<BR>">
    </CFCATCH>
    </CFTRY>

    <!--- Envia uma mensagem ao membro --->
    <CFIF Len(ARGUMENTS.Memb_Email) AND IsNumeric(LerID.Memb_ID) AND
    ARGUMENTS.EnviarMensagem>
    <CFINVOKE COMPONENT="#Componente#" METHOD="EnviarMensagemDadosMembros"
    RETURNVARIABLE="MensagemDadosMembro"
    Titulo ="Inscri??o como Utilizador"
    Mensagem ="Agradecemos a sua inscri??o como Utilizador."
    Memb_Utilizador ="#ARGUMENTS.Memb_Utilizador#"
    Memb_Senha ="#VARIABLES.Memb_Senha#"
    Memb_Nome ="#ARGUMENTS.Memb_Nome#"
    Memb_Email ="#ARGUMENTS.Memb_Email#"
    Memb_EmailHTML ="#ARGUMENTS.Memb_EmailHTML#"/>
    </CFIF>

    lx_xpto Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139