Devenir membre club
Connectez vous
Aide & règlement
Votre 1ère visite
Le règlement
Contacter les admins
Contacter le webmaster
Questions & réponses
Comment soutenir CodeS-SourceS
Comment faire un lien vers CodeS-SourceS
Autres questions
A propos & don
A propos du réseau
Les modérateurs
Remerciements
Faire un don
Le livre d'or
Tous les livres
Les dernières parutions
Les plus consultés
Les critiques
Le top des ventes
Le top favoris des membres
Recevoir des livres blancs
Tous les thèmes
Les derniers messages
Les nouveaux messages
Poser une question
Le Chat - IRC
Tous les tutoriels
Ajouter un tutoriel
Les tutoriels en vidéo
Les formations vidéos
Tous les codes
Ajouter un code
Filtrer par catégorie
Filtrer par date
Les plus récents
Les mis à jour
Les codes par jour
Filtrer par niveau
Niveau débutant
Niveau initié
Niveau expert
Filtrer par type
Les codes avec capture
Les codes avec zip
Les codes .Net
Filtrer par qualité
Les plus populaires
Les plus populaires du mois
Les plus téléchargés
Les mieux notés
Top par catégorie
Top des favoris
Filtrer par auteur
Tous les auteurs
Le top des membres
Les snippets
Déposer votre CV
Consulter les offres d'emploi ou de stage
Consulter les CVs
Déposer une offre d'emploi ou de stage
Modèles de CV et lettres
Trouver une convention collective
Les écoles d'informatique
Toutes les écoles
Ajouter une école
Les outils
Outils pour développeurs
Trouver des ressources
Base de données de CodeS-SourceS
Télécharger les meilleurs logiciels
Comparer les prix
Envoyer des ecards
Création de bannières
Annuaire de la prog
Tous les sites
Ajouter votre site
Le dico de la prog
Toutes les définitions
Ajouter une définition
Les évènements
Tous les évènements
Les évènements à venir
Ajouter un évènement
Téléchargements
CodeS-SourceS Toolbox
CodeS-SourceS Toolbar
Toolbar pour FireFox
Fonds d'écran
Les compil's
Nos partenaires
Magazine Programmez
Frontier.fr
Xiti
ProgOnline
Winwise
Editions Eyrolles
Toute la liste
Les RFC
CS
VB, VB.NET
ASP.NET,ASP
C, C++
ColdFusion
PHP
Javascript
Delphi
Flash
Java
Graphisme
Irc
Assembleur
C#
Mobilité
SQL
Foxpro
Python
Regex
Flex
Windev
Ce site au démarrage
begin process at 2012 02 11 08:07:20
Accueil
Codes
Tutoriels
Forum
Livres
Emploi
Services
Connexion
Trouver un code source :
dans
Tout le site
Codes
Tutoriels
Forum
Blogs
Livres
RFC
Icones
News .NET
Boutique
[ Dernières recherches ]
Veuillez saisir votre recherche... Ex: smtp, lire un fichier, rs232
Options de recherche :
Tous les codes
Tous les codes en .Net
Tous les codes sauf .Net
Langages disponibles :
Tous les langages
ASP / ASP.NET
Assembleur
C / C++ / C++.NET
C# / C#.NET
ColdFusion
Delphi
Flash
Flex, Air, ActionScript
Foxpro
Graphisme
IRC
JAVA / J2EE
Javascript / Ajax / DHTML
PDA / PocketPC
PHP
Python
Regex, Regular Expression, Expression régulière
SQL
Visual Basic, VB6, VB.NET, VB 2005, VB
13 commentaire(s) de Dargos
sur des sources sur tout
CodeS-SourceS
Déposé sur
Dictionnaire optimise
je pense qu'il faudrait déja créer une enum : public enum eWordType { Adjective, Verb, ... }
ensuite créer une propriété dans la classe Noeud : public eWordTpe? NodeType;
nullable pour que les noeud intermédiaires nepossedent pas de valeur mais que les noeuds finaux la possedent.
de plus il faudrait modifier les methodes d'insertion de mots pour qu'ils prennent en compte cette nouvelle valeur.
et pourquoi pas accélérer la recherche avec cette valeur...
d'ailleurs, les noeuds intermediaires devraient peutetre avoir une valeur combinée de l'enum contenant l'enssemble des sous-valeurs pour accélérer la recherche. mais à ce moment la, ca ralentirait l'insertion et modification. donc au choix ;)
Posté le :
29/08/2009 12:48:54
Déposé sur
Dbmap - autogénérer des requettes multibases
salut, je viens de mettre à jour le zip avec la gestion des tables d'association.
j'ai aussi fourni le dump de la base de données de test (MySql).
pour repondre à vos questions, il est vrai que mon projet ressemble à link. d'ailleurs, j'etais bien degouté quand j'ai vu arriver link qui utilisait la meme technique que moi pour les attributs. la mecanique interne, je crois que c'est bien plus evolué que la mienne :p
sinon, oui, le but de ce projet est de ne plus faire de requettes. et meme mieux : le but est de pouvoir changer de sgbdr sans changer le code. changer les noms de tables ou de columns, en n'ayant qu'à modifier les attributs dans les classes de mapping.
autrement, le but de ce programme est d'avoir des objects "normaux", avec des collection d'objects... mais en sql, le schéma est obligatoirement différent (l'exemple avec les voitures) : on doit desfois passer par des tables d'associations.
j'ai l'habitude de devoir travailler sur des bases imposées (mal faites et souvent changeantes) donc mon prog a été pensé pour s'y addapter. si on veut générer les classes avec leurs attributs, il va falloir faire un autre projet et bien déterminer les besoins ;)
en tout cas, merci à vous pour ces commentaires !
j'en attend d'autres par rapport au support des tables d'association ;)
(il serait peut etre aussi utile de remplir des dictionnary<,> mais dans quel ca ? )
Posté le :
27/03/2008 23:49:28
Déposé sur
Dbmap - autogénérer des requettes multibases
pour la question du "RealInsert", je pense que ce n'est pas à mon systeme de vérifier s'il existe ou pas une clef identique. par exemple, dernierement, j'ai eu une "DuplicatedKeyException", et j'etais bien content d'avoir cette exception justement. apres, c'est peut etre au programmeur de faire ces verification, ou meme des try{insert} catch{update} par exemple.
apres, pour les jointures, j'ai reussi à faire quelque chose de pas mal, mais je me pose encore la question des tables d'associations. je depose donc le nouveau zip.
Posté le :
26/03/2008 19:07:03
Déposé sur
Dbmap - autogénérer des requettes multibases
Tmcuh, ce que tu dis par rapport aux "fields", ca me fait grandement penser à un simple DataRow. la raison pour laquelle je n'aime pas les DataRow, c'est qu'il faut connaitre le nom des propriétés en String, et donc à la compilation, on ne peut rien verifier. avec mon systeme, on ne gere que des propriétés donc vérifications à la compilation.
ensuite, si un jour, un champ de la base change, il suffit de modifier l'attribut de la propriété concernée, et rien d'autre ne changera dans le code ! (sauf si on utilisait le nom du champ au lieu d'utiliser des groupes) au fait, pour ca, j'ai aussi modifié le systeme, pour pouvoir donner les noms des propriétés de l'object au lieu de l'appeller par le nom du champ de la base (ce qui donnera des mauvais resultats si ce nom change change).
allez, bientot un update du zip, quand ca sera un peu plus propre pour les jointures ;)
Posté le :
25/03/2008 21:24:31
Déposé sur
Dbmap - autogénérer des requettes multibases
salut salut,
ya d'la bonne idée, la ;)
bon, pour l'instant, j'ai reussi à faire des jointures, mais il faut encore que je rende ca plus maniable : dans nos classes, on a souvent une propriété qui est une liste d'objects, et bien, avec une simple ligne, ca genere la requette, et remplis les objects et listes d'objects. par exemple, dans la classe user, j'ai mis une propriété ville qui a un code postal et un nom. il y a une table equivalente dans la base de données, et quand je lance le programme, ca me remplis bien la ville. j'ai aussi fait le test avec une collection de voitures pour le user, et ca marche ausi. je me pause en ce moment des questions par rapport aux inner join et left join, mais je vais m'en sortir ;)
sinon, il est vrai que pour l'instant, on fait nos objects à la main, ce qui est bien mais pas top. pour ca on peut avoir plusieurs possibilités : regarder la base de données, et générer les classes à partir de ca. mais le probleme, je trouve, c'est que la plus part du temps, les objects et la base, c'est pas la meme architecture : exemple avec une table d'association que l'on a pas dans les objects : on fera juste une List<>. alors quelle est la meilleure solution ? peut etre proposer les deux ;)
ce qui serait idéal, ca serait peut etre de générer les objects à partir d'un xml. et au besoin générer le xml à partir de la base !
à débattre :)
Posté le :
25/03/2008 21:13:59
Déposé sur
Dbmap - autogénérer des requettes multibases
effectivement, pour la puissance des procedures stockées. bien que les curseurs soient lents, ils sont quand meme plus rapides que plein de requettes pour faire la meme chose !
par contre, je peux quand meme faire en sorte de supporter les procédures stockées de maniere simple.
pour l'instant, je continue le programme vers le support des jointures. on verra plus tard pour les procedures stockées ;)
a l'heure actuelle, on peut les executer "a la main" avec mon systeme, c'est deja ca ;)
Posté le :
21/03/2008 18:20:17
Déposé sur
Dbmap - autogénérer des requettes multibases
pour le coté PL SQL par exemple, avec mon systeme on va pouvoir le faire en faisant dans la classe OracleDbMap les override qu'il faut.
ensuite, pour les procedures stockées, au debut j'avais prevu ca, mais je l'ai enlevé car mal géré. mais maintenant, je peux le rajouter, ce sera facile (et mieux géré qu'au début :p )
ensuite, je me suis appliqué pour les perfs : toutes les requettes (gérées avec des iDataParameters) sont stockées et réutilisées au besoin, donc le gros calcul sera fait uniquement pour la premiere des requetes identiques.
aussi pour les perfs, il peut etre lent de faire le tour des GetProperties() d'un object et de recupérer son attribut à chaque requette. pour cela, j'ai géré une dictionary qui stoque les clefs PropertyInfo/DbColumnAttribute. donc c'est aussi amélioré.
alors apres, pour le coup des tables par classe, c'est vrai que c'est pas terrible. seulement, pour l'instant, c'est suffisant. mais effectivement, on va vite avoir desoin de jointures. justement, j'y reflechis. je pense mettre un parametre optionnel à DbColumnAttribute pour specifier la table jointe, avec les conditions de jointure. mais ca ne va pas etre si simple que ca. il faut encore que j'en definisse l'architecture. a voir donc ;)
et ausi, coté code, si certaines choses paraisent floues, n'hesitez pas à me demander :) c'est peut etre aussi que le code n'est pas assez clair, et c'est donc à coriger ;)
Dargos
Posté le :
21/03/2008 17:54:43
Déposé sur
Dictionnaire optimise
exactement tmcuh.
en fait, quand on parle de dictionaire, c'est surtout avoir des paires clef/valeur (sinon on va plutot parler de liste).
donc à priori, il faudrait juste ajouter une valeur de type string sur les noeuds '\0'.
quand on va ajouter un mot, on l'ajoutera avec sa valeur : la methode ajouter_mot prendra donc 2 strings en parametre.
ensuite, vu de l'exterieur, on ne devrait pas avoir acces à la mecanique interne de la classe, mais n'avoir que 3 ou 4 methodes publiques comme ajouter, enlever, vider, charger_depuis_fichier. en particulier, on de devrait pas accéder à cette List<Noeud> particulierement dans la signature des methodes.
ensuite, dans le dictionaire, on va le plus souvent demander la valeur d'un mot, et une seule fois loader le dico complet. ce qui serait idéal serait d'avoir une public method qui renvoie une string valeur à partir d'une string clef.pour finir,
pour ca, il va falloir trouver quelle forme donner au fichier, vu qu'on rajoute des valeurs aux clefs : un xml, autres ?
Tmcuh, je suis bien d'accord avec toi pour dire qu'en vitesse acces, c'est surement la methode la plus efficace !
sinon, je vais encore coser un peu la chose :
peux tu predire ce qu'il va se passer si 2 threads ajoutent le meme mot au meme moment ?
si tu comptes laisser la methode ajouter_mot publique, il va surement falloir penser à la synchronisation des threads ! je te laisse y reflechir, mais tu peux te renseigner sur la classe ReaderWriterLock ;)
G33kemenT, Dargos
Posté le :
20/03/2008 21:40:19
Déposé sur
Dictionnaire optimise
simple et efficace, j'aime bien :)
par contre, pour etre pointilleux, je dirais que la methode "ajouter_mot" a un probleme :
cette methode est recursive, et elle appelle à chaque fois la methode "existe_mot" recursive aussi. en modifiant de tres peu et en utilisant de preference la methode "est_dans_liste", ca serait surement plus efficace.
ensuite, je ne suis pas tres concerné pas les mots croisés, mais j'utilise souvent des dictionnary pour faire des traductions des textes de l'application. vu ce que tu viens de faire, j'imagine que tu vas proposer une bonne idée ;)
Posté le :
19/03/2008 19:10:10
Déposé sur
[.net 2.0] - classe pour gérer facilement les predicate pour ...
pour ton histoire de multitude de predicateHelper, tu devrais peut etre faire une classe generique genre
public class PredicateHelper<T>{}
ca t'eviterais de reecrire plusieurs fois la meme chose.
tu devrais peut etre implementer l'interface IComparable.. je sais pas..
sinon, pour les List<T>, dans la methode FindAll(predicate(T)) par exemple, tu peux utiliser une syntaxe comme ceci :
int valSup=10;
List<int> MyIntList = new List<int>();
foreach (int myInt in MyIntList.FindAll(delegate(int di) { return di > valSup; }))
{
Console.WriteLine(myInt.ToString());
}
ce code va tout simplement te sortir les items de ta liste qui sont >10 sans avoir à créer une fonction qui ne servirait qu'une seule fois...
;)
Posté le :
07/06/2007 16:35:56
1
2
Nos sponsors
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.
par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article
par Patrick Guimonet
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3
par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article
par ROMELARD Fabrice
MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !
MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !
par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article
par Vko
[FRAMEWORK 4] LES TASKS ET LE THREAD UI
[FRAMEWORK 4] LES TASKS ET LE THREAD UI
par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article
par fathi
WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE
WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE
par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article
par JeremyJeanson
La suite
RSS
Côté IT
Utiliser Office 365 pour un projet d?équipe - PART 2
Utiliser Office 365 pour un projet d?équipe - PART 1
SharePoint 2007 : Installation du Service Pack 3 de MOSS
SharePoint 2007 : Installation du Service Pack 3 de WSS V3
Installation de SQL Server DENALI CTP3
Mise à jour de Windows 2003 R2 vers Windows 2008 R2
Upgrade de SQL Server 2005 vers SQL Server 2008 R2
La suite
RSS
Offres d'emploi
Recherche Recherche développeur web ASP et ASP.Net
Recherche Analyste Programmeur Adélia
Recherche Développeur eZ Publish confirmé
Recherche AP (H/F) ACCESS EXCEL VBA
Recherche SUPPORT INFORMATIQUE / DEVELOPPEUR
Recherche Developpeur web
Recherche développeur Web
Déposer une offre
La suite
RSS
Formations Video
Coffret : Ateliers sur la mode
Atelier sur la mode : Motifs et matières
Atelier sur la mode : La planche tendance
Atelier sur la mode : De retour de pige et repérage
Corel Painter 12 : Les fondamentaux
Coffret : Microsoft Office 2010 de A à Z
De Microsoft Office 2003 à 2007 et 2010
La suite
RSS
Appels d'offres
Passerelle Pericles sur site Joomla 17
Budget :
499€
Infogerance Serveur Debian Linux
Budget :
2 400€
Developpeur applications iphone - ipad - android
Budget :
800€
La suite
RSS
Logiciels
Academy System (17.2.1.0)
ACADEMY SYSTEM (17.2.1.0)
Logiciel de gestion des établissements. - élèves/étudiants (inscription, dossier, absence...) -...
Cliquez pour télécharger Academy System
Easy-Planning (1.0.0.1)
EASY-PLANNING (1.0.0.1)
Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ...
Cliquez pour télécharger Easy-Planning
COLLECTOR PLUS (3.00B)
COLLECTOR PLUS (3.00B)
COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par : - L...
Cliquez pour télécharger COLLECTOR PLUS
PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)
PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)
PONAMEDIA TV DEVIENS HELLLOOO FLASH LA TV SUR VOTRE ORDINATEUR. Toute une plateforme Multi...
Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO
LettresFaciles 2011 (8.0.0.1)
LETTRESFACILES 2011 (8.0.0.1)
LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types. Son inte...
Cliquez pour télécharger LettresFaciles 2011
+ de logiciels à télécharger
Vidéos drôles
Halloween Party
Terry Tate Office Linebacker Superbowl 2003
Jeu vidéo instructif
C'est un véritable vol !
Banana Song
Comment attraper la grippe A
Parodie Pub Window 7
La suite
RSS
Sondage...
Votre navigateur n'utilise pas le javascript, pour
voter aux sondages de ce site, cliquez ici
Statistiques
1 873 499
membres
30
nouveaux aujourd'hui
16 151
membres club
Comparez les prix
Samsung LE26B350 LCD
Entre 359€ et 417€
Visiter le guide achat
CalendriCode
Février
2012
L
M
M
J
V
S
D
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Consulter la suite du CalendriCode
Photothèque
Visiter la photothèque
CS Tool Box