Scrittura su un database SQL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />La connessione SQL in JMP è ottima per leggere i dati: qualcuno la utilizza per scrivere dati?
Ho una procedura memorizzata che raccoglie i dati e li scrive in una nuova tabella. Utilizza una seconda tabella per leggere l'elenco dei parametri in modo da sapere quali dati raccogliere. Posso leggere questa tabella con JMP ma scriverla è tutt'altro che facile:
- le colonne di testo vengono salvate come in JMP nvarchar con spazi bianchi finali: ciò richiede una funzione di ritaglio degli spazi bianchi per utilizzare le colonne di testo caricate
- le date vengono scaricate correttamente ma il driver OBDC genera un errore se provi a scriverle come date. È possibile aggirare questo problema convertendo prima la colonna in formato testo e quindi riconvertendola durante l'uso, ma è piuttosto fastidioso.
Attualmente utilizzo una procedura memorizzata per copiare i dati corretti dalla tabella creata da JMP alla tabella principale che supera indirettamente le limitazioni.
La mia domanda è: esiste un modo migliore per utilizzare insieme JSL/SQL per leggere una tabella, aggiungere nuove righe e quindi riscrivere le alterazioni/modifiche sul server?
Ri: Scrittura su un database SQLGrazie @vince_faller
L'ho usato e sono anche riuscito a ingrandirlo eseguendolo in un ciclo. per qualche motivo avevo un limite di circa 35.000 righe alla volta, quindi ho creato un ciclo for per leggere 25.000 righe alla volta e inserirle nel database.
Ri: Scrittura su un database SQLCIAO,
Grazie per la tua condivisione
Di seguito è riportato il mio caso e apprezzo l'aiuto.
1. il nome del database SQL nel server: SQL_machine_yield_db
allegato SQL_machine_yield_db.jmp quando si ottiene l'aggiornamento dalla connessione db.
2. nel db ci sono 8 colonne
3. i dati nella tabella "new_and_update_yield.jmp
Domanda: come utilizzare jsl/sql per aggiornare new_and_yield.jmp a SQL_machine_yield_db nel server?
Distinti saluti
Ri: Scrittura su un database SQLPresumo che tu stia chiedendo quale sia la tabella dati con qualche istruzione WHERE e non semplicemente inserendo l'intera tabella?
Se ti capita di trascinare dentro l'intero tavolo,
dt < dbc,
"dbo.falso",
Sostituire
);
Funzionerebbe. Altrimenti NON farlo.Poiché eliminerà tutte le informazioni nella tabella che non sono nella query JMP. Penso che questo sia in JMP 12+?
In caso contrario, potresti separarlo se ha un ID o meno.Esegui un aggiornamento se ha un ID, esegui un inserimento in caso contrario.Probabilmente sarebbe meglio bloccare e nascondere la colonna ID.Sto solo sputando qui, ma penso che dovrebbe funzionare.
Ri: Scrittura su un database SQLHo la sensazione che tu voglia avere il database "aggiornamento automatico" quando vengono apportate modifiche alla tabella JMP (senza il pulsante "Aggiorna", in quanto tale). Potresti essere in grado di farlo utilizzando 'Subscribe()'. Per esempi vedere 'Aiuto > Indice di scripting'.
Ri: Scrittura su un database SQLGrazie per quell'esempio. Sapevo di poter scrivere SQL grezzo ed eseguirlo, ad esempio INSERT, UPDATE e REPLACE o eseguire una procedura memorizzata e passarle i parametri. Stavo cercando ad esempio SQL/JSL in cui un utente può aprire una tabella di database esistente in JMP. All'utente finale sembra essere solo una tabella JMP memorizzata su un computer remoto. La differenza è che qualsiasi modifica apportata alla tabella JMP potrebbe essere caricata nel database originale.
Ora posso vedere come scrivere codice JSL per verificare se sono state aggiunte nuove righe alla tabella e quindi utilizzare INSERT INTO per scriverle nel database (a condizione che le discrepanze del tipo di dati possano essere controllate). Qualche idea su come tenere traccia delle modifiche alle righe esistenti?
Ri: Scrittura su un database SQLQuesto ha funzionato bene per me.Probabilmente ho frainteso la tua domanda.
dbc = Crea connessione al database ( "DRIVER=SERVER SQL;SERVER=database_falso;Database=DB_Test" );
sqlreturn = Esegui SQL (dbc,
"INSERISCI IN [Test_DB].[dbo].[falso]
VALORI
("TestSQLinserimento"
,1
,1
,'JMP'
,14.14
,14.14
,1
,'JMP'
,'JMP'
,'JMP'
,14
,14
)"
);
chiudere la connessione al database (dbc);

Presumo che il tuo problema con le date sia dovuto al fatto che JMP memorizza effettivamente le date come secondi.Potresti eseguire un MDYHMS() nella tua data in JMP o aggiungere una data (JMPdate, s, '1-1-1970') in SQL.
Altre informazioni che puoi dare?Posso inserire dati e aggiungere righe alla tabella JMP, quindi aggiornare la tabella SQL, ma senza contesto salterei semplicemente l'estrazione dei dati e li inserirei direttamente in SQL (oppure farei in modo che SQL esegua l'aggiunta e tralasci completamente JMP).
Ri: Scrittura su un database SQLMi dispiace, non posso aiutarti, sono completamente alle prime armi in questo argomento, ma apprezzerei anche qualsiasi feedback che qualcuno abbia sulla scrittura nei database.