Problema con rowid

di il
6 risposte

Problema con rowid

Ciao ragazzi ho un programma in c++ che utilizza un wrapper per sqlite (SqliteModernCpp su github). ho già il mio db fatto con una tabella Table e all interno 4 campi "uno,due,tre,quattro".

Col programma io riesco a dare in input due parole che andranno nei campi "uno, due".
ora mi ritrovo con una grande lista di parole nei campi "uno,due" e devo inserire altre due parole nei campi "tre, quattro".
non posso per motivi tecnici creare un unica query dove inserisco subito le parole in tutti e 4 i campi, i campi "tre,quattro" devo riempirli SOLO dopo aver finito di riempire i campi "uno,due".

ho pensato al comando UPDATE Table SET tre = 'shark', quattro = 'dog' WHERE ROWID = 1; ma dovrei sempre cambiare il rowid, ci sta un modo per autoincrementare il rowid in modo che a ogni esecuzione del programma il rowid mi fa 1,2,3,4,.... ?

spero di esser stato chiaro in quanto la cosa è un po contorta xD grazie.

6 Risposte

  • Re: Problema con rowid

    Certo che c'è.
    Basta creare un ciclo For/Next da codice in cui incrementi il contatore che userai come ROWID
  • Re: Problema con rowid

    gibra ha scritto:


    Certo che c'è.
    Basta creare un ciclo For/Next da codice in cui incrementi il contatore che userai come ROWID


    Il ciclo for/next non si usa con visual basic? io sto su linux e uso atom per programmare in c++ . comunque non l ho mai fatta questa cosa, non mi è molto chiara così, puoi spiegarti meglio magari con un esempio?
  • Re: Problema con rowid

    Nessun altro sa aiutarmi ragazzi?
  • Re: Problema con rowid

    Supponi di dichiarare una chiave primaria nella tabella (di lunghezza 36 caratteri), e di generare un UUID() (ad esempio da mysql) con qualcosa del tipo (pseudo codice)
    
    lamiachiave='select uuid()';
    insert into tabella(chiave) values(lamiachiave)
    update tabella set tantebellecose1 where chiave=lamiachiave limit 1
    update tabella set tantebellecose2 where chiave=lamiachiave limit 1
    
    il "limit 1" è per i maniaci.
    uuid è un overkill, puoi usare tante altre alternative.
    La sostanza è: ti generi DA PROGRAMMA una chiave (cioè non ti affidi a un qualche campo autoincrementante).
    E poi lavori QUELLA chiave come ti pare.

    Spero ti essere stato chiaro.
    I vantaggi e svantaggi solo se lo chiedi espressamente (sono lunghi)
  • Re: Problema con rowid

    Un ciclo For/Next lo fai con qualsiasi linguaggio.
    Se non lo conosci, basta che ti documenti.
  • Re: Problema con rowid

    X jarvis1: non aprire la stessa discussione su due aree del forum. Ho cancellato quella presente in progettazione database
Devi accedere o registrarti per scrivere nel forum
6 risposte