Accueil > Forum > > > > [SQL] Update
[SQL] Update
mardi 29 mai 2007 à 10:37:10 |
[SQL] Update

erwinn
|
Bonjour, Je travaille avec foxpro 8.0 Existe-t-il un moyen de faire un update sur un nombre limité de ligne. (je veux juste mettre à jour la première ligne remplissant ma clause where) Certaines bases supportent le : Update table set bla=blabla where ... limit row_count
mais malheureusement la clause limit n'est pas supporté par ma base. Quelqu'un à une petite idée? Merci
|
|
mardi 29 mai 2007 à 20:56:21 |
Re : [SQL] Update

MichelAtoutFox
|
Bonjour,
tu travailles sur des données dans des dbf, ou bien tu attaques un serveur SQL Server?
pour un serveur SQL Server (donc en transact SQL), je ferais qqchose comme update blabla WHERE mavaleur IN (SELECT monchamp TOP 1 from... order by monchamp)
|
|
mardi 29 mai 2007 à 23:09:26 |
Re : [SQL] Update

erwinn
|
Je travaille sur des dbf. L'utilisation des recno à permis de solutionner mon problème ex :
update matable set champ1 = '1' where recno() = X...
|
|
samedi 3 mai 2008 à 09:39:46 |
Re : [SQL] Update

panterga
|
bonjour
michelatoutfox je reviens vers vous car vous m'avez beaucoup aidé mais là je bloque depuis hier soir j'ai réussi à me connecter à une base oracle XE en locale si j'utilise le designer j'arrive à lire ma table et récuperer ; pas de probleme; mais je voudrais essayer de me connecter et lire la table par prog voici ce que j'ai écrit :
STORE SQLSTRINGCONNECT('dsn=XE;uid=HR;pwd=hr') TO gnConnHandle IF gnConnHandle < 0 = MESSAGEBOX('PAS OK', 16, 'SQL Connection Error') ELSE = MESSAGEBOX('OK', 48, 'SQL Connection Message')
STORE SQLTABLES(gnConnHandle, 'TABLEPANT' ,"mycursor") TO nTables
IF nTables = 1
SELECT * FROM mycursor = SQLDISCONNECT(gnConnHandle)
ENDIF
mais j'obtiens une liste de table dans mon cursor , je vois bien la table qui m'interesse (tablepant) (dans un champ: table_name) mais je ne sais pas comment recuperer les données qui sont dedans ( champ :nom et ville) afin de les transferer dans une table foxpro .....
d'ailleurs est on obligé de passer par un cursor ? merci infinimment pour votre aide précieuse ....
De plus je vais devoir me connecter à une base distante par TCP (dont j'ai le HOST,le PORT) mais puis je tester avec les mêmes codes en local sur une base oracle XE ?
|
|
samedi 3 mai 2008 à 12:29:14 |
Re : [SQL] Update

MichelAtoutFox
|
Bonjour,
tu établis ta connexion correctement, et tu récupères le handle de connexion comme il faut (gnConnHandle).
quand tu fais un SQLTABLES(), ça te donne la liste des tables disponibles par cette connexion Si tu fais un SQLCOLUMNS(gnConnHandle, <le_nom_de_ta_table>,<le_nom_du_curseur_de_retour>), tu obtiendras la litse des champs de cette table.
pour obtenir tes données, c'est l'instruction SQLEXEC que tu dois utiliser: tu prépares la commande SQL dans une variable chaine, par exemple: local lcSQL as string, lnResult as integer store "SELECT champ1, champ2 from ma_table" to lcSQL lnResult=SQLEXEC(gnConnHandle, lcSQL, "curseur_resultat")
Oui, tu es obligé de passer par un curseur, c'est l'objet utilisé par VFP pour stocker et manipuler des jeux d'enregistrements (c'est d'ailleurs très exactement ce que signifie le mot cursor). En VFP9, tu pourrais aussi utiliser un CursorAdapter, qui est une forme plus évoluée du curseur.
L'avantage de la technique que tu utilises (le SQL Pass-Through), c'est justement que ce que tu écris seras réutilisable sans rien changer quand tu te connecteras par TCP. Tu n'auras que la connectstring à modifier, voire même simplement le DSN.
Est-ce plus clair maintenant?
|
|
samedi 3 mai 2008 à 13:53:19 |
Re : [SQL] Update

panterga
|
merci pour tes précisions , par contre j'obtiens un mess d'erreur sur SQLCOLUMNS(gnConnHandle,"TABLEPANT","mycursor2") (invalid column....)
et je ne trouve rien concernant l'aide sur SQLCOLUMNS ds vfp9 ?
voici mon prg : STORE SQLSTRINGCONNECT('dsn=XE;uid=HR;pwd=hr',.T.) TO gnConnHandle
IF gnConnHandle < 0 = MESSAGEBOX('PAS OK', 16, 'SQL Connection Error') = SQLDISCONNECT(0) ELSE = MESSAGEBOX('OK', 48, 'SQL Connection Message') STORE SQLTABLES(gnConnHandle, 'TABLEPANT' ,"mycursor") TO nTables SELECT mycursor browse A ce niveau j'obtiens la liste de toute les tables d'oracle dont la table TABLEPANT que j'avais créé sous oracle XE
=SQLCOLUMNS(gnConnHandle,"TABLEPANT","mycursor2")
A ce niveau j'ai l'erreur : incorrect column format
SELECT mycursor2 BROWSE LOCAL lcSQL as String, inresult as integer STORE "SELECT NOM,VILLE from TABLEPANT" TO lcSQL inresult= SQLEXEC(gnConnHandle,lcSQL,"mycursor3") SELECT mycursor3 browse
lors d'une fin d'appel de fonction SQL perd t'on la connexion ?
merci de ton aide vraiment précieuse ........
|
|
samedi 3 mai 2008 à 15:40:39 |
Re : [SQL] Update

MichelAtoutFox
|
Oupss! désolé pour SQLCOLUMNS... j'ai oublié de te préciser que si tu renseignes le paramètre "curseur_retour", il faut en réalité passer tous les paramètres: le 1er est le handle de connexion, le 2ème c'est le nom de la table, mais le 3ème doit être soit "NATIVE" soit "FOXPRO", et le 4ème le nom du curseur de résultat. si tu choisis NATIVE, tu as le type de données sur le serveur, si tu choisis FOXPRO, tu auras le type de données qui sera mappé dans ton curseur. Il y a un certain nombre de fonctions qui sont mal indexées dans l'aide de VFP9, et SQLCOLUMNS en fait partie; tu la trouveras en passant par SQLTABLES et en regardant le "See Also". Celà dit, si tu connais déjà le nom de ta table et le nom des colonnes que tu veux récupérer, tu as seulement besoin de SQLEXEC. Et pour SQLEXEC, je te conseille d'utiliser le 4ème paramètre (aCountInfo), qui va te créer un tableau du même nom qui contiendra des informations qui peuvent être bien utiles. Regarde l'aide pour les détails. Et enfin, non, la déconnexion n'est pas automatique à la fin de la fonction SQLxxx. Tu dois passer par un SQLDISCONNECT(gnHandle). Bon courage pour la suite 
|
|
samedi 3 mai 2008 à 16:01:10 |
Re : [SQL] Update

panterga
|
merci beaucoup entre temps j'avais progressé , il ne me reste plus qu'à comprendre la différence entre ceci :
STORE SQLSTRINGCONNECT('Driver={Microsoft ODBC for Oracle};Server=XE;Uid=HR;Pwd=hr') TO gnConnHandle
cela fonctionne
et
STORE SQLSTRINGCONNECT('Driver={Microsoft ODBC for Oracle};server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=apex)(PORT=8080))(CONNECT_DATA=(SID=XE)));uid=HR;pwd=hr') TO gnConnHandle
cela ne fonctionne pas !!
je n'arrive pas à comprendre la différence et où trouver le HOST et le PORT sur mon oracle XE mais bon je te remercie encore à bientôt bon week end
|
|
mardi 13 mai 2008 à 21:42:45 |
Re : [SQL] Update

panterga
|
bonjour est il possible d'ecrire dans une base oracle à partir de foxpro ?
|
|
mercredi 14 mai 2008 à 11:53:09 |
Re : [SQL] Update

MichelAtoutFox
|
Oui, bien sur, si tu as la bonne chaine de connexion. [ Lien ]Ensuite, si tu utilises SPT (comme tu le fais), il te faut vérifier que tes requètes respectent bien les particularités du SQL pour Oracle.
|
|
Cette discussion est classée dans : ligne, sql, update, clause, where
Répondre à ce message
Sujets en rapport avec ce message
Visual FoxPro 6 et SQL serveur [ par cyrileur ]
Bonjour;Je veux utiliser foxpro sur une base sql serveur ( avec ODBC ). Actuellement j'arrive à me connecter à ma base avec Accès. J'arrive à faire de
Affichage des données provenant d'une base sql server different d'un poste à l'autre. [ par feeling__ ]
Bonjour à tous !Voila j'ai developpé un utilitaire en fox pro qui attaque une base sql server et mon souci c'est que sur mon poste (post de dev) l'aff
sql, fonction month, sum et group by [ par lijohann ]
bonjour,je fais une requete toute bete sur des tables .dbf: select id, month(date), sum(qte)from matablegroup by id, month(date)mais là (que ce soit e
migration sql vers foxpro [ par tmcuh ]
Bonjour je dois migrer 200 bases de données sql contenant à peu de choses près 4 tables chacune. Avant de me lancer dans la programmation pure et dure
lecture d'une string [ par gregorian ]
Bonjour, dans la lecture d'un fichier texte, je dois le parcourir pour pouvoir le reformatter et ainsi pouvoir utiliser la fonction append from pour l
Mettre une date dans une clause WHERE d'une requête Visual Foxpro [ par artis31 ]
Bonjour,Je suis confronté à un problème sur une requête SELECT... WHERE... dans une table visual foxpro.A partir d'un code en VBA (Excel) je veux alle
colorier une ligne d'une grille [ par ducker88 ]
Bonjour,voila mon probleme, je suis en train de faire des modifications sur un programme ecrit en foxpro, l'une de ces modifications consiste a mettre
SQLEXEC() ou RemoteView ? [ par Gaetan_B ]
Bonjour, je développe une application en VFP8 avec base de données locale (.dbf) et base de données distante (SQL Server 2000). Pour accéder aux don
SQL - "delete from" ne fonctionne pas ;'( [ par highmasterc ]
Bonjour à tous. Alors voila, dans mon code, j'utilise une table nommmée table2 (c'est une "free table").J'execute deux requêtes SQL sur cette table qu
grid pb....... [ par rubix2 ]
<TD id=HB_Focus_Element vAlign=top width="100%" background="" height=250 UNSELECTAB
Livres en rapport
|
Derniers Blogs
[ASP.NET] NE PAS SE FAIRE AVOIR PAR IHTTPMODULE ET SA MéTHODE INIT()[ASP.NET] NE PAS SE FAIRE AVOIR PAR IHTTPMODULE ET SA MéTHODE INIT() par tja
Beaucoup de développeurs pensent que lorsqu'on créé et enregistre un IHttpModule, il n'en existe qu'une seule instance et la méthode Init() sera appelée qu'une fois.
C'est faux
Cela peut vraiment créer des bugs subtils dont en ne se rend pas compte ...
Cliquez pour lire la suite de l'article par tja [MSTD10] SHAREPOINT 2010 ET TEAM FOUNDATION SERVER[MSTD10] SHAREPOINT 2010 ET TEAM FOUNDATION SERVER par phil
Un post rapide pour vous informer de la disponibilité de la vidéo de ma présentation sur SharePoint 2010 & Team Foundation Server. http://www.microsoft.com/france/vision/mstechdays10/Webcast.aspx?EID=20215d48-02e3-4d43-8c36-e53505c3b316 Dans la ...
Cliquez pour lire la suite de l'article par phil [MSTD10] SQL SERVER 2008 POUR LES DéVELOPPEURS ET VISUAL STUDIO TEAM SYSTEM DATABASE EDITION[MSTD10] SQL SERVER 2008 POUR LES DéVELOPPEURS ET VISUAL STUDIO TEAM SYSTEM DATABASE EDITION par Miiitch
Lors de cette session que j'ai animé avec Rui , j'ai eu l'occasion de présenter, en plus des nouveautés de SQL Server 2008, comment utiliser l'édition "database" de Visual Studio 2008. Le principe? Avoir les mêmes outils lors que l'on travaille avec une b...
Cliquez pour lire la suite de l'article par Miiitch [WF4] LOCALISER SIMPLEMENT UNE ACTIVITé ET SON DESIGNER WPF[WF4] LOCALISER SIMPLEMENT UNE ACTIVITé ET SON DESIGNER WPF par JeremyJeanson
La localisation . vous connaissez ce system miraculeux qui permet à votre application de s'afficher dans la langue de l'utilisateur (à condition de l'avoir intégrée dans votre programme). Comment mettre en place la localisation dans WF4? Cette question m'...
Cliquez pour lire la suite de l'article par JeremyJeanson [TECHDAYS 2010] WEBCASTS ET SLIDES[TECHDAYS 2010] WEBCASTS ET SLIDES par Audrey
Les webcasts des sessions des Techdays 2010 sont maintenant disponibles en ligne ! Me concernant, voici les slides et le webcast de la session Blend 3 / Skechtflow : Dessinez c'est gagné ! (animée avec Michel Perfetti ) Les slides et le webcast : Blend 3/...
Cliquez pour lire la suite de l'article par Audrey
Forum
RE : TXT VERS DBFRE : TXT VERS DBF par MichelAtoutFox
Cliquez pour lire la suite par MichelAtoutFox RE : TXT VERS DBFRE : TXT VERS DBF par MichelAtoutFox
Cliquez pour lire la suite par MichelAtoutFox
Logiciels
Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor Xlite (v 3.0 build 41150)XLITE (V 3.0 BUILD 41150)c'est un logiciel qui permet de téléphoner par Internet à l'aide d'un compte SIP pratique pour le... Cliquez pour télécharger Xlite Academy System (10.9.3.0)ACADEMY SYSTEM (10.9.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
Comparez les prix

HTC Magic
Entre 429€ et 429€
|