Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    n0nn4
    Guest

    Funzione Max Per ottenere una nuova chiave primaria

    Salve , dovrei fare in modo che se provo a fare un'inserimento di dati relativi ad una agenzia , il codice si debba generare automaticamente(naturalmente diverso da quelli già esistenti);
    Per cui ho pensato di usare queste 4 righe prima di procede all'inserimento vero e proprio!

    sql="Select Max(cod_agenzia) From Agenzie"
    ConnessioneDB.Execute(sql)
    cod=rsTabella.Fields("cog_agenzia")
    cod=cod+1

    Se provo a mettere queste righe nella mia pagina ASP mi viene generato questo errore;
    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A01A8)
    Necessario oggetto: ''
    /Esame2000(ASP)/inserimento1.asp, line 25

    (dove la linea 25 è:cod=rsTabella.Fields("cog_agenzia"))

    Se ometto queste 4 righe , e il cod lo assegno da codice sorgente ad esempio (cod =11)
    l'inserimento viene fatto correttamente,(naturalmente 1a volta sola visto che la kiave primaria deve essere sempre diversa)
    Quindi non capisco perche non riesce ad estrarre dal recordset l'unico valore che vi è presente!LOL

  2. #2
    sql="Select Max(cod_agenzia) From Agenzie"
    ConnessioneDB.Execute(sql)
    cod=rsTabella.Fields("cod_agenzia")
    cod=cod+1
    Adesso dovrebbe andare...

    per altro scusa... ma Mettere un autoincrement al campo del database?
    che db usi?

    Grazie sempre di tutto!!!
    Alberto

  3. #3
    n0nn4
    Guest
    utilizzo un db di tipo relazionale !
    cmq il problema persiste

    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A01A8)
    Necessario oggetto: ''
    /Esame2000(ASP)/inserimento1.asp, line 25


    la linea 25 è la seguente:cod=rsTabella.Fields("cod_agenzia"):
    HELP

  4. #4
    si... relazionale... ma QUALE?

    cmq puoi aggiungere l'attributo autoincrement al campo "id" (sperando che sia cod_pagina...) ... e almeno ti togli il pensiero...

    se no puoi...
    codice:
    ' setta host, dbnm, user, pswd
     set conn = server.CreateObject("ADODB.Connection")
     conn.Open ("server="& host &";db="& dbnm &";driver=MySQL;uid="& user &";pwd="& pswd &" ")
     set rs = server.CreateObject("adodb.recordset")
     sql = "SELECT `cod_pagina` FROM `Agenzie`ORDER BY `cod_pagina`"
     rs.open sql, conn, 3, 3
     rs.movelast
     cod = rs("cod_pagina") + 1
     rs.close
     
     sql = ... provvedi all'inserimento...
    ma mi sembra fin troppo prolisso e ingiustificato se puoi modificare la tabella

    Ohiaia
    PS. ocio che l'ho scritto al volo e per altro non conosco il tuo db...
    Grazie sempre di tutto!!!
    Alberto

  5. #5
    n0nn4
    Guest
    mm vabbhe nn c'jho capito una mazza di quello che hai scritto .. cmq thx lo stesso
    sono riuscito a trocvare un'alternativa valida

    Grazie alla funzione Random ho risolto il problema

    <%
    Randomize()
    cod=Rnd()
    %>


  6. #6
    ocio però che random però non ti crea niente di univoco...
    hai sempre la possibilità di doppioni...

    Grazie sempre di tutto!!!
    Alberto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.