Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [ Delphi ] ADO Table

  1. #1
    piccaweb
    Guest

    [ Delphi ] ADO Table

    Per inserire un record in una tabella del Db utilizzo questa sintassi:
    codice:
     Clienti.Insert;
     Clienti['Nome'].AsWideString:=Contact.FirstName;
     Clienti.Post;
    Ma non funziona, come mai?
    Mi restituisce come errore:'Variant does not references an automation object' nella riga in cui assegno il valore nel campo.
    Ho provato a cambiare WideString con String ma non funziona comunque.
    Contact.FirstName é una WideString...


  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    So che con ADO ci sono delle particolari restrizioni alle azioni che puoi eseguire su una tabella (Recordset), a seconda del tipo di cursore che intendi utilizzare per scorrere la tabella. Prova a consultare la Guida in linea di Delphi relativa al componente ADOTable; magari tenta di modificare la proprietà CursorType al valore ctDynamic...

    Come diceva Martufello: "di più 'nin so!"
    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    piccaweb
    Guest
    Ho già controllato e mi sono accorto di usare ADO con un Recordset di tipo Statico , ho provato a cambiare l'impostazione mettendolo Dinamico ma appena si attiva la tabella ritorna automaticamente a Statico!
    Sono sicuro che l'errore é cuastoda questa inesattezza, ma non riesco a modificare l'impostazione!

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    ADOCommand?

    Purtroppo non ho altre informazioni a riguardo. Per tentare di risolvere il problema, prova ad eseguire l'inserimento utilizzando un ADOCommand attraverso uno statement SQL, invece di effettuare la Insert direttamente sulla ADOTable.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    piccaweb
    Guest
    Anche a me é venuta la stessa idea ieri era... e per fortuna funziona!
    Cmq devo ancora capire come mai Delphi cambia in automatico lo stato del RecordSet.
    Mahhh




    :quote:

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Il motivo per il quale Delphi forza il valore della proprietà nella ADOTable potrebbe anche derivare dalla modalità con cui hai aperto la connessione dati. Ad esempio, se decidi di aprire una connessione in sola lettura, è inutile specificare un cursore in grado di modificare un record se la connessione stessa non lo permette. Prova a controllare la proprietà Mode dell'oggetto ADOConnection che hai impigato per effettuare la connessione alla base dati.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    piccaweb
    Guest
    Avevo già controllato la modalità di apertura della Tabella e addiruttura del DB, ma entrambi sono impostati sia per la scrittura che per la lettura.

    :quote:

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Questi sono quelli che (dalle mie parti) chiamiamo "poltergeist"!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.