Page 1 sur 1

(Résolu] Problème de BDD multi-tables

Publié : dim. 21/oct./2012 19:08
par Micoute
Je souhaiterais faire une base de données avec plusieurs tables, mais ça me crée les tables, hélas, elles sont vides, pourquoi ?

Il y a surement quelque chose que je n'ai pas vu, alors je vous livre mon programme tel quel

Pourriez-vous m'aider s'il vous plaît ? Je vous en serais grandement remerciant

Code : Tout sélectionner

Enumeration 
	#Base_de_donnees
	#Table
EndEnumeration

Global Aliment$
Global Fichier_de_donnees$ = "Ingredients alimentaires.SQLite"
Global  Table$

UseSQLiteDatabase()

Procedure LireDonnees()
	Aliment$ = ""
	If Aliment$  = ""
		; Creer une table
		Requete$ = "CREATE TABLE IF NOT EXISTS " + Table$ + "(Ingredient TEXT)"
		DatabaseUpdate(#Base_de_donnees, Requete$)
		While Aliment$ <> "Fin"
			Read.s Aliment$
			If Aliment$ <> "Fin"
				;Ajouter des valeurs
				Requete$ = "(Ingredient) VALUES ('"+Aliment$+"')"
				DatabaseUpdate(#Base_de_donnees, "INSERT INTO" + Table$ + Requete$)
			EndIf
		Wend
	EndIf
EndProcedure

Procedure  LireTable()
	Restore Produits_laitiers
	Table$ = "Produits laitiers"
	LireDonnees()		
	Restore Poissons
	Table$ = "Poissons"
	LireDonnees()
	Restore Oeufs
	Table$ = "Oeufs"
	LireDonnees()
	Restore Agneau
	Table$ = "Agneau"
	LireDonnees()
	Restore Boeuf
	Table$ = "Boeuf"
	LireDonnees()
	Restore Cheval
	Table$ = "Cheval"
	LireDonnees()
	Restore Porc
	Table$ = "Porc"
	LireDonnees()
	Restore Veau
	Table$ = "Veau"
	LireDonnees()
	Restore Gibier
	Table$ = "Gibier"
	LireDonnees()
	Restore Volailles
	Table$ = "Volailles"
	LireDonnees()
	Restore Condiments
	Table$ = "Condiments"
	LireDonnees()
	Restore Aromates
	Table$ = "Aromates"
	LireDonnees()
	Restore Feculents
	Table$ = "Feculents"
	LireDonnees()
	Restore Sucres
	Table$ = "Sucres"
	LireDonnees()
	Restore Fruits
	Table$ = "Fruits"
	LireDonnees()
	Restore Legumes
	Table$ = "Légumes"
	LireDonnees()
	Restore Champignons
	Table$ = "Champignons"
	LireDonnees()
	Restore Boissons_et_alcools
	Table$ = "Boissons & alcools"
	LireDonnees()
EndProcedure

If FileSize(Fichier_de_donnees$) = -1
	If CreateFile(#Base_de_donnees, Fichier_de_donnees$)
		CloseFile(#Base_de_donnees)
		
		If OpenDatabase(#Base_de_donnees, Fichier_de_donnees$, "", "", #PB_Database_SQLite)
			LireTable()
		EndIf
	EndIf	
EndIf

DataSection	
	; - Produits_laitiers	
	Produits_laitiers:
	Data.s "Babybel"
	Data.s "Banon"
	Data.s "Beaufort"
	Data.s "Bleu (fromage)"
	Data.s "Bonbel"
	Data.s "Boursault"
	Data.s "Brousse"
	Data.s "Camembert"
	Data.s "Cantal"
	Data.s "Carré de l'Est"
	Data.s "Causses"
	Data.s "Chabichou"
	Data.s "Chaource"
	Data.s "Cheddar"
	Data.s "Chester"
	Data.s "Chèvre (fromage frais)"
	Data.s "Comté"
	Data.s "Crottin de chavignol"
	Data.s "Edam"
	Data.s "Emmenthal"
	Data.s "Epoisses"
	Data.s "Féta"
	Data.s "Fourme"
	Data.s "Fromage blanc"
	Data.s "Fromage fermenté"
	Data.s "Fromage de chèvre frais"
	Data.s "Fromage de chèvre mi-sec"
	Data.s "Fromage de chèvre sec"
	Data.s "Fromage fondu"
	Data.s "Géromé"
	Data.s "Gorgonzola"
	Data.s "Gouda"
	Data.s "Gournay"
	Data.s "Gruyère"
	Data.s "Hollande"
	Data.s "Lait de vache écrémé"
	Data.s "Lait de vache demi-écrémé"
	Data.s "Lait de vache entier"
	Data.s "Livarot"
	Data.s "Maroilles"
	Data.s "Mimolette"
	Data.s "Morbier"
	Data.s "Mozarelle"
	Data.s "Munster"
	Data.s "Neufchatel"
	Data.s "Parmesan"
	Data.s "Pavé d'auge"
	Data.s "Pélardon"
	Data.s "Persillés (fromages)"
	Data.s "Pont-l'éveque"
	Data.s "Port-salut"
	Data.s "Pouligny-Saint-Pierre"
	Data.s "Provolone"
	Data.s "Pyrénées"
	Data.s "Raclette (à fromage)"
	Data.s "Reblochon"
	Data.s "Rigotte"
	Data.s "Rollot"
	Data.s "Roquefort"
	Data.s "Rouy"
	Data.s "Saint-Florentin"
	Data.s "Saint-Marcelin"
	Data.s "Saint-Nectaire"
	Data.s "Saint-Paulin"
	Data.s "Saint-Maure"
	Data.s "Seles-sur-Cher"
	Data.s "Tomme"
	Data.s "Triple-crème 75% MG"
	Data.s "Vacherin (fromage)"
	Data.s "Yaourts"
	Data.s "Fin"
	; - Poissons
	Poissons:
	Data.s "Ablette"
	Data.s "Athérine"
	Data.s "Abusseau"
	Data.s "Alose"
	Data.s "Alphée"
	Data.s "Amande"
	Data.s "Anchois"
	Data.s "Anguille"
	Data.s "Anguille fumée"
	Data.s "Athérine"
	Data.s "Balane"
	Data.s "Bar"
	Data.s "Barbeau"
	Data.s "Barbue"
	Data.s "Baudroie"
	Data .s "lotte"
	Data.s "Belon"
	Data.s "Bernicle"
	Data.s "bernique"
	Data.s "Bigorneaux"
	Data.s "Bogue"
	Data.s "bouquets"
	Data.s "Brème"
	Data.s "Brie"
	Data.s "Broccio"
	Data.s "Brochet"
	Data.s "Buccins"
	Data.s "Bulots"
	Data.s "Cabillaud"
	Data.s "Calmar"
	Data.s "encornet"
	Data.s "Cardine"
	Data.s "Carpe"
	Data.s "Carrelet"
	Data.s "plie"
	Data.s "Caviar"
	Data.s "Chevesne"
	Data.s "chevaine"
	Data.s "Chien-de-mer"
	Data.s "Chinchard"
	Data.s "saurel"
	Data.s "Chipiron"
	Data.s "encornet"
	Data.s "Cigale de mer"
	Data.s "Clams"
	Data.s "Clovisses"
	Data.s "Colin"
	Data.s "merlu"
	Data.s "Congre"
	Data.s "Couteaux"
	Data.s "Crabe"
	Data.s "Craquelot"
	Data.s "bouffi"
	Data.s "Crevettes"
	Data.s "Daget"
	Data.s "Daurade"
	Data.s "dorade"
	Data.s "Ecrevisses"
	Data.s "Eglefin fumé"
	Data.s "haddock"
	Data.s "Emissole"
	Data.s "Empereur"
	Data.s "hoplostère"
	Data.s "Eperlan"
	Data.s "Equille"
	Data.s "lançon"
	Data.s "Espadon"
	Data.s "Esturgeon"
	Data.s "Etrille"
	Data.s "Féra"
	Data.s "Galathée"
	Data.s "galatée"
	Data.s "Gambas"
	Data.s "Gardon"
	Data.s "Gendarme"
	Data.s "Goujon"
	Data.s "Gravenche"
	Data.s "Grémille"
	Data.s "Cuisses de Grenouille"
	Data.s "Grisets"
	Data.s "Grondin"
	Data.s "Haddock"
	Data.s "Hareng"
	Data.s "Hareng fumé"
	Data.s "Hareng saur"
	Data.s "Hareng au vinaigre"
	Data.s "Homard"
	Data.s "Hoplostète"
	Data.s "Huîtres"
	Data.s "Julienne"
	Data.s "Lingue"
	Data.s "Kippers"
	Data.s "Krill"
	Data.s "Labre"
	Data.s "Lamproie"
	Data.s "Lampourde"
	Data.s "Lançon"
	Data.s "équille"
	Data.s "Langouste"
	Data.s "Langoustine"
	Data.s "Lavaret"
	Data.s "Lieu"
	Data.s "Limande"
	Data.s "Limande -sole"
	Data.s "Lingue"
	Data.s "julienne"
	Data.s "Loche"
	Data.s "Lotte"
	Data.s "baudroie"
	Data.s "Loup"
	Data.s "bar"
	Data.s "Maquereau"
	Data.s "Merlan"
	Data.s "Merlu"
	Data.s "colin"
	Data.s "Mérou"
	Data.s "Mollusques"
	Data.s "Molve"
	Data.s "lingue"
	Data.s "Morue fraîche"
	Data.s "Morue salée"
	Data.s "Morue séchée"
	Data.s "Motelle"
	Data.s "Moules"
	Data.s "Mulet"
	Data.s "Murène"
	Data.s "Omble"
	Data.s "Ombre"
	Data.s "Ormeaux"
	Data.s "Oursin"
	Data.s "Pagel"
	Data.s "Pagre"
	Data.s "Palourdes"
	Data.s "Perche"
	Data.s "Pétoncles"
	Data.s "Pieuvre"
	Data.s "Pilchards"
	Data.s "Plie"
	Data.s "carrelet"
	Data.s "Poulpe"
	Data.s "Praires"
	Data.s "Pretre"
	Data.s "athérine"
	Data.s "Raie"
	Data.s "Rascasse"
	Data.s "Requin"
	Data.s "Rollmops"
	Data.s "Rotengle"
	Data.s "Rouget-barbet"
	Data.s "Rouget-grondin"
	Data.s "Roussette"
	Data.s "Saint-Jacques"
	Data.s "Saint-Pierre"
	Data.s "Sandre"
	Data.s "Sar"
	Data.s "Sardines"
	Data.s "Sargue"
	Data.s "Saumon"
	Data.s "Saumon fumé"
	Data.s "Saumonette"
	Data.s "Saurel"
	Data.s "Scampi"
	Data.s "Sébaste"
	Data.s "Seiche"
	Data.s "Silure"
	Data.s "Sole"
	Data.s "Sparaillon"
	Data.s "Sprat"
	Data.s "Squille"
	Data.s "Surimi"
	Data.s "Surmulet"
	Data.s "Tacaud"
	Data.s "Tanches"
	Data.s "Tarama"
	Data.s "Thon"
	Data.s "Thon Albacore"
	Data.s "Thon Bonite"
	Data.s "Thon Germon"
	Data.s "Thon Listao"
	Data.s "Thon Pélamide"
	Data.s "Tocan"
	Data.s "taquon"
	Data.s "Tourteau"
	Data.s "Trachure"
	Data.s "saurel"
	Data.s "Truite arc-en-ciel"
	Data.s "Truite d'élevage"
	Data.s "Truite fumée"
	Data.s "Truite saumonée"
	Data.s "Turbot"
	Data.s "Turbotin"
	Data.s "Vairon"
	Data.s "Vandoise"
	Data.s "Vanneau"
	Data.s "Vénus"
	Data.s "Vernis"
	Data.s "Vieille"
	Data.s "Vive"
	Data.s "Fin"
	;Oeufs
	oeufs:
	Data.s "Oeufs de caille"
	Data.s "Oeufs de cane"
	Data.s "Oeufs de dinde"
	Data.s "Oeufs de poule"
	Data.s "blancs d'oeufs"
	Data.s "jaunes d'oeufs"
	Data.s "Oeufs de poissons"	
	Data.s "Fin"
	; - Agneau
	Agneau:
	Data.s "Cervelle d'agneau"
	Data.s "Coeur d'agneau"
	Data.s "Côtelette d'agneau"
	Data.s "épaule d'agneau"
	Data.s "Filet d'agneau"
	Data.s "Foie d'agneau"
	Data.s "Gigot d'agneau"
	Data.s "Langue d'agneau"
	Data.s "Poitrine d'agneau"
	Data.s "Ris d'agneau"
	Data.s "Rognons d'agneau"
	Data.s "Selle d'agneau"
	Data.s "Saucisses merguez"
	Data.s "Fin"
	; - Boeuf
	Boeuf:
	Data.s "Boeuf à bourguignon"
	Data.s "Boeuf à pot-au-feu"
	Data.s "Aiguillette de boeuf"
	Data.s "Aloyau de boeuf"
	Data.s "Araignée de boeuf"
	Data.s "Bavette de boeuf"
	Data.s "Bifteck de boeuf"
	Data.s "Cervelle de boeuf"
	Data.s "Châteaubriand de boeuf"
	Data.s "Coeur de boeuf"
	Data.s "Corned-beef"
	Data.s "Côte de boeuf"
	Data.s "Culotte de boeuf"
	Data.s "Échine de boeuf"
	Data.s "Entrecôte de boeuf"
	Data.s "Epaule de boeuf"
	Data.s "Faux-filet de boeuf"
	Data.s "Filet de boeuf"
	Data.s "Flanchet de boeuf"
	Data.s "Foie de boeuf"
	Data.s "Gîte de boeuf"
	Data.s "Graisse de boeuf"
	Data.s "Hampe de boeuf"
	Data.s "Langue de boeuf"
	Data.s "Macreuse de boeuf"
	Data.s "Noix de boeuf"
	Data.s "Onglet de boeuf"
	Data.s "Paleron de boeuf"
	Data.s "Palette de boeuf"
	Data.s "Plat-de-côte de boeuf"
	Data.s "Rognons de boeuf"
	Data.s "Rond gîte de boeuf"
	Data.s "Rosbif"
	Data.s "Rôti de boeuf"
	Data.s "Rumsteck de boeuf"
	Data.s "Tendron de boeuf"
	Data.s "Tournedos de boeuf"
	Data.s "Tripes de boeuf"
	Data.s "Steack haché de boeuf"
	Data.s "Fin"
	; - Cheval	
	Cheval:
	Data.s "Salami"
	Data.s "Steack de cheval"
	Data.s "Fin"
	; - Porc	
	Porc:
	Data.s "Bacon"
	Data.s "Bacon fumé"
	Data.s "Cervelas de porc"
	Data.s "Chair à saucisse"
	Data.s "Chipolatas"
	Data.s "Chorizo"
	Data.s "Lonzo"
	Data.s "Carré de porc"
	Data.s "Cervelle de porc"
	Data.s "Coeur de porc"
	Data.s "Côtelettes de porc"
	Data.s "Echine de porc"
	Data.s "Epaule de porc"
	Data.s "Filet de porc"
	Data.s "Foie de porc"
	Data.s "Jambon"
	Data.s "Jambon cru italien"
	Data.s "Jambon de bayonne"
	Data.s "Jambon de paris"
	Data.s "Jambon fumé"
	Data.s "Jambonneau"
	Data.s "Langue de porc"
	Data.s "Lard de porc"
	Data.s "Lardons de porc"
	Data.s "Museau de porc"
	Data.s "Noix de porc"
	Data.s "Palette de porc"
	Data.s "Pieds de porc"
	Data.s "Poitrine fumée de porc"
	Data.s "Poitrine salée de porc"
	Data.s "Rognons de porc"
	Data.s "Rôti de porc"
	Data.s "Tête de porc"
	Data.s "Travers de porc"
	Data.s "Rillettes de porc de Tours"
	Data.s "Rillettes de porc du Mans"
	Data.s "Rosette de porc (saucisson)"
	Data.s "Saucisses de porc sèches"
	Data.s "Saucisson de porc à l'ail"
	Data.s "Saucisson de porc chorizo"
	Data.s "Saucissons de porc cuits"
	Data.s "Saucissons de porc crus"
	Data.s "Saucisson de porc d'Arles"
	Data.s "Saucisson de porc de Lyon"
	Data.s "Saucissons de porc secs"
	Data.s "Saucisses chair à"
	Data.s "Saucisses chipolatas"
	Data.s "Saucisses crépinettes"
	Data.s "Saucisses de Francfort"
	Data.s "Saucisses de Montbéliard"
	Data.s "Saucisses de Morteau"
	Data.s "Saucisses de Strasbourg"
	Data.s "Saucisses de Toulouse"
	Data.s "Saucisses de porc fumées"
	Data.s "Fin"
	; - Veau	
	Veau:
	Data.s "Aloyau de veau"
	Data.s "Araignée de veau"
	Data.s "Carré de veau"
	Data.s "Cervelle de veau"
	Data.s "Coeur de veau"
	Data.s "Côtelettes de veau"
	Data.s "Culotte de veau"
	Data.s "Epaule de veau"
	Data.s "Escalope de veau"
	Data.s "Filet de veau"
	Data.s "Foie de veau"
	Data.s "Hampe de veau"
	Data.s "Jarret de veau"
	Data.s "Langue de veau"
	Data.s "Longe de veau"
	Data.s "Noix de veau"
	Data.s "Onglet de veau"
	Data.s "Pieds de veau"
	Data.s "Poitrine de veau"
	Data.s "Quasi de veau"
	Data.s "Ris de veau"
	Data.s "thymus de veau"
	Data.s "Rognons de veau"
	Data.s "Tendron de veau"
	Data.s "Tête de veau"
	Data.s "Fin"
	; - Gibier
	Gibier:
	Data.s "Bartavelle"
	Data.s "Bécasse"
	Data.s "Becfigue"
	Data.s "Biche"
	Data.s "Caille"
	Data.s "Cerf"
	Data.s "Chevreau"
	Data.s "Chevreuil"
	Data.s "Daim"
	Data.s "Elan"
	Data.s "Faisan"
	Data.s "Foie de lapin"
	Data.s "Gélinotte"
	Data.s "Gravelot"
	Data.s "Grive"
	Data.s "Grouse"
	Data.s "Lapin"
	Data.s "Lièvre"
	Data.s "Ortolan"
	Data.s "Palombe"
	Data.s "Perdreau"
	Data.s "Perdrix"
	Data.s "Pluvier"
	Data.s "Râle"
	Data.s "Renne"
	Data.s "Sanglier"
	Data.s "Vanneau"
	Data.s "Fin"
	; - Volailles	
	Volailles:
	Data.s "Canard"
	Data.s "Chapon"
	Data.s "Dinde"
	Data.s "Dindonneau"
	Data.s "Foie de volaille"
	Data.s "Foie gras"
	Data.s "Oie"
	Data.s "Pigeon"
	Data.s "Pintade"
	Data.s "Poule"
	Data.s "Poulet"
	Data.s "Sarcelle"
	Data.s "Tétras"
	Data.s "Fin"
	; - Condiments	
	Condiments:
	Data.s "Beurre"
	Data.s "Beurre de cacahuète"
	Data.s "Beurre de cacao"
	Data.s "Câpres"
	Data.s "Crème fraîche"
	Data.s "Gélatine"
	Data.s "Graisse d'oie"
	Data.s "Harissa"
	Data.s "Huile d'arachide"
	Data.s "Huile de carthame"
	Data.s "Huile de coco"
	Data.s "Huile de colza"
	Data.s "Huile de coprah"
	Data.s "Huile de coton"
	Data.s "Huile de karité"
	Data.s "Huile de maïs"
	Data.s "Huile de noix"
	Data.s "Huile d'olive"
	Data.s "Huile de pépins de raisin"
	Data.s "Huile de sésame"
	Data.s "Huile de soja"
	Data.s "Huile de tournesol"
	Data.s "Ketchup"
	Data.s "Levure alimentaire"
	Data.s "Levure chimique"
	Data.s "Levure de bière"
	Data.s "Levure de bière sèche"
	Data.s "Levure de boulanger"
	Data.s "Maïs huile"
	Data.s "Margarine"
	Data.s "Mayonnaise"
	Data.s "Moutarde"
	Data.s "Pickles"
	Data.s "Saindoux"
	Data.s "Sel"
	Data.s "Soja (sauce)"
	Data.s "Tomate (sauce)"
	Data.s "Tomate (concentré)"
	Data.s "Végétaline"
	Data.s "Vinaigre"
	Data.s "Fin"
	; - Aromates	
	Aromates:
	Data.s "Aneth"
	Data.s "Basilic"
	Data.s "pistou"
	Data.s "Cardamone"
	Data.s "Carvi"
	Data.s "Ciboule"
	Data.s "Ciboulette"
	Data.s "civette"
	Data.s "Clous de girofle"
	Data.s "Cumin"
	Data.s "Curcuma"
	Data.s "Curry"
	Data.s "cari"
	Data.s "Estragon"
	Data.s "Fines herbes"
	Data.s "Fond de veau"
	Data.s "Fond de volaille"
	Data.s "Genièvre (baie)"
	Data.s "Gingembre"
	Data.s "Girofle (clous)"
	Data.s "Herbes aromatiques"
	Data.s "Laurier"
	Data.s "Kub or"
	Data.s "Menthe (feuille)"
	Data.s "Nuoc-mam"
	Data.s "Origan"
	Data.s "marjolaine"
	Data.s "Paprika"
	Data.s "Persil"
	Data.s "Pili-pili"
	Data.s "Piment doux"
	Data.s "poivron"
	Data.s "Piment en poudre"
	Data.s "Piment rouge"
	Data.s "Piment vert"
	Data.s "Poivre"
	Data.s "Quatre-épices"
	Data.s "Ras el Hanout"
	Data.s "Romarin"
	Data.s "Farigoulette"
	Data.s "Safran"
	Data.s "Sariette"
	Data.s "Sauge"
	Data.s "Serpolet"
	Data.s "Tabasco"
	Data.s "Thym"
	Data.s "Vanille"
	Data.s "Viandox"
	Data.s "Fin"
	; - Feculents	
	Feculents:
	Data.s "Arachide"
	Data.s "cacahuète"
	Data.s "Avoine (flocon)"
	Data.s "Avoine (grains)"
	Data.s "Biscottes"
	Data.s "Blé (germes)"
	Data.s "Blé (grains)"
	Data.s "Blé soufflé sucré"
	Data.s "Blé noir"
	Data.s "sarrasin"
	Data.s "Chapelure"
	Data.s "Farine d'avoine"
	Data.s "Farine de blé blanche"
	Data.s "Farine de blé complet"
	Data.s "Farine de maïs"
	Data.s "Farine d'orge"
	Data.s "Farine de riz"
	Data.s "Farine de sarrasin"
	Data.s "Farine de seigle"
	Data.s "Farine de soja"
	Data.s "Fécule d'igname"
	Data.s "Fécule de maïs"
	Data.s "Flageolets crus"
	Data.s "Flocons d'avoine"
	Data.s "Flocons de maïs"
	Data.s "Flocons de PDTerre"
	Data.s "Kasha (sarrasin)"
	Data.s "Macaronis"
	Data.s "Maïs doux"
	Data.s "Maïs corn-flakes"
	Data.s "Maïs farine"
	Data.s "Maïs fécule"
	Data.s "Maïs flocons"
	Data.s "Maïs pétales"
	Data.s "Maïs pop-corn"
	Data.s "Semoule de maïs"
	Data.s "Maizena"
	Data.s "Makabo (racine)"
	Data.s "Malt"
	Data.s "Manioc (semoule)"
	Data.s "Manioc (tapioca)"
	Data.s "Millet (grain)"
	Data.s "Muesli"
	Data.s "Nouilles"
	Data.s "Orge (farine)"
	Data.s "Orge (grains)"
	Data.s "Orge germée (malt)"
	Data.s "Orge perlée"
	Data.s "Pâtes ordinaires"
	Data.s "Pâte brisée"
	Data.s "Pâte feuilletée"
	Data.s "Pâte sablée"
	Data.s "Pétales de maïs"
	Data.s "Pignons"
	Data.s "Pilpil de blé"
	Data.s "Riz blanc"
	Data.s "Riz complet"
	Data.s "Riz soufflé"
	Data.s "Riz (farine)"
	Data.s "Sarrasin ou blé noir"
	Data.s "Seigle (farine)"
	Data.s "Seigle (grain)"
	Data.s "Seigle (pain)"
	Data.s "Semoule"
	Data.s "Soja (farine)"
	Data.s "Soja (grain sec)"
	Data.s "Spaghettis"
	Data.s "Son (pain)"
	Data.s "Sorgho (grain)"
	Data.s "Tagliatelles"
	Data.s "Tapioca"
	Data.s "Tonimalt"
	Data.s "Triscottes"
	Data.s "Tournesol (grains)"
	Data.s "Vermicelles"
	Data.s "Fin"
	; - Sucres	
	Sucres:
	Data.s "Bonbons"
	Data.s "Cacao en poudre"
	Data.s "Caramel"
	Data.s "Cassonade"
	Data.s "Chocolat à croquer"
	Data.s "Chocolat à pâtiserie"
	Data.s "Chocolat à tartiner"
	Data.s "Chocolat au lait"
	Data.s "Chocolat blanc"
	Data.s "Chocolat de ménage"
	Data.s "Chocolat en poudre"
	Data.s "Chocolat noir"
	Data.s "Confitures"
	Data.s "Cyclamates"
	Data.s "Galactose"
	Data.s "Glucose"
	Data.s "Granulés chocolatés"
	Data.s "Guimauve"
	Data.s "Halva"
	Data.s "Loukoums"
	Data.s "Miel"
	Data.s "Poudre de cacao"
	Data.s "Poudre maltée sucrée"
	Data.s "Réglise (confiserie)"
	Data.s "Saccharine"
	Data.s "Saccharose"
	Data.s "Sucettes"
	Data.s "Sucre"
	Data.s "Sucre de canne"
	Data.s "Sucre d'orge"
	Data.s "Truffes au chocolat"
	Data.s "Vergeoise"
	Data.s "Fin"
	; - Fruits_et_legumes
	Fruits:
	Data.s "Abricot"
	Data.s "Figue"
	Data.s "Mandarine"
	Data.s "Pamplemousse"
	Data.s "Airelle"
	Data.s "Figue de Barbarie"
	Data.s "Mangue"
	Data.s "Papaye"
	Data.s "Amende"
	Data.s "Fortunas"
	Data.s "Maracuja"
	Data.s "Pastèque"
	Data.s "Ananas"
	Data.s "Fraise"
	Data.s "Marron"
	Data.s "Pêche"
	Data.s "Ananas baby"
	Data.s "Fraise des bois"
	Data.s "Mangoustan"
	Data.s "Physalis"
	Data.s "Avocat"
	Data.s "Framboise"
	Data.s "Melon"
	Data.s "Poire"
	Data.s "Avocat sauvage"
	Data.s "Fruit de la passion"
	Data.s "Mirabelle"
	Data.s "Pomme"
	Data.s "Banana"
	Data.s "Grenade"
	Data.s "Mûre"
	Data.s "Prune"
	Data.s "Banane baby"
	Data.s "Grenadille"
	Data.s "Myrtille"
	Data.s "Pruneaux"
	Data.s "CassiS"
	Data.s "Groseille"
	Data.s "Nectarine"
	Data.s "Pitahaya"
	Data.s "Cerise"
	Data.s "Groseille à maquereau"
	Data.s "Nèfle"
	Data.s "Raisin"
	Data.s " Citron"
	Data.s "Goyave"
	Data.s "Noisette"
	Data.s "Ramboutan"
	Data.s "Citron vert"
	Data.s "Kaik"
	Data.s "Noix"
	Data.s "Reine-claude"
	Data.s " Clémentine"
	Data.s "Kaki vanille"
	Data.s "Noix de coco"
	Data.s "Sharon"
	Data.s "Clémenvillas"
	Data.s "Kumquat"
	Data.s "Orange"
	Data.s "Sweetie"
	Data.s "Coing"
	Data.s "Litchi"
	Data.s "Orange amère"
	Data.s "Tamarin"
	Data.s "Fruits secs"
	Data.s "Tangérine"
	Data.s "Fin"
	Legumes:
	Data.s "Ail"
	Data.s "Blette"
	Data.s "Brocoli"
	Data.s "Cardon"
	Data.s "Carotte"
	Data.s "Céleri rave"
	Data.s "Chayote"
	Data.s "Chou chinois"
	Data.s "Chou de Bruxelles"
	Data.s "Chou rave"
	Data.s "Chou-fleur"
	Data.s "Consoude"
	Data.s "Courge"
	Data.s "potiron"
	Data.s "citrouille"
	Data.s "Courgette"
	Data.s "Cresson"
	Data.s "Echalote"
	Data.s "Endive"
	Data.s "Epinard"
	Data.s "Fenouil"
	Data.s "Fève"
	Data.s "Haricot blanc"
	Data.s "Haricot plat"
	Data.s "Haricot vert"
	Data.s "Laitue"
	Data.s "Crosne"
	Data.s "Mâche"
	Data.s "Navet"
	Data.s "Oignon"
	Data.s "Ortie"
	Data.s "Oseille"
	Data.s "Panais"
	Data.s "Patate douce"
	Data.s "Petit-pois"
	Data.s "Poireau"
	Data.s "Poivron"
	Data.s "piment"
	Data.s "Pomme de terre"
	Data.s "Potimarron"
	Data.s "Radis"
	Data.s "Rhubarbe"
	Data.s "Rutabaga"
	Data.s "Safran"
	Data.s "Scorsonère"
	Data.s "Tétragone"
	Data.s "Tomate"
	Data.s "Topinambour"
	Data.s "Fin"
	; - Champignons
	Champignons:
	Data.s "Coprins chevelus"
	Data.s "Gomphides"
	Data.s "Morilles"
	Data.s "Mousserons"
	Data.s "Oreilles de judas"
	Data.s "Oreilles de lièvre"
	Data.s "Pézizes"
	Data.s "Pleurotes"
	Data.s "Psaliottes"
	Data.s "Russules"
	Data.s "Trompettes de la mort"
	Data.s "Truffes"
	Data.s "Fin"
	; - Boissons_et_alcools
	Boissons_et_alcools:
	Data.s "Anis (sirop)"
	Data.s "Anisette"
	Data.s "Bénédictine"
	Data.s "Bière"
	Data.s "Bourbon"
	Data.s "Brandy"
	Data.s "Café"
	Data.s "Calvados"
	Data.s "Camomille (infusion)"
	Data.s "Champagne doux"
	Data.s "Champagne brut"
	Data.s "Chartreuse (liqueur)"
	Data.s "Cherry"
	Data.s "Chicorée (boisson)"
	Data.s "Cidre brut"
	Data.s "Cidre doux"
	Data.s "Coca-cola"
	Data.s "Coca-cola light"
	Data.s "Cognac"
	Data.s "Curaçao"
	Data.s "Eau"
	Data.s "Eau de vie"
	Data.s "Framboise (jus)"
	Data.s "Genièvre (alcool)"
	Data.s "Gentiane (alcool)"
	Data.s "Grenadine (sirop)"
	Data.s "Jus de carotte"
	Data.s "Jus d'abricot"
	Data.s "Jus d'ananas"
	Data.s "Jus de cassis"
	Data.s "Jus de citron"
	Data.s "Jus de framboise"
	Data.s "Jus d'orange"
	Data.s "Jus de pamplemousse"
	Data.s "Jus de pêche"
	Data.s "Jus de poire"
	Data.s "Jus de pomme"
	Data.s "Jus de prune"
	Data.s "Jus de pruneau"
	Data.s "Jus de raisin"
	Data.s "Jus de tomate"
	Data.s "Kéfir"
	Data.s "Kirsh"
	Data.s "Koumys"
	Data.s "Limonade"
	Data.s "Liqueur"
	Data.s "Madère"
	Data.s "Martini"
	Data.s "Menthe (sirop)"
	Data.s "Menthe (tisane)"
	Data.s "Moka (café)"
	Data.s "Mousseux (vin)"
	Data.s "Muscat (vin doux)"
	Data.s "Orgeat (sirop)"
	Data.s "Pastis"
	Data.s "Pêche (jus)"
	Data.s "Pepsi-cola"
	Data.s "Pernod"
	Data.s "Picon (apéritif)"
	Data.s "Poires (jus)"
	Data.s "Poiré"
	Data.s "Pomme (jus)"
	Data.s "Porto"
	Data.s "Prune (jus)"
	Data.s "Pruneaux (jus)"
	Data.s "Raisin (jus)"
	Data.s "Rhum"
	Data.s "Ricard"
	Data.s "Schiedam (alcool)"
	Data.s "Schnaps"
	Data.s "Schweppes"
	Data.s "Sirops non dilués"
	Data.s "Sodas"
	Data.s "Spiritueux"
	Data.s "Suze"
	Data.s "Tafia"
	Data.s "Téquila"
	Data.s "Thé"
	Data.s "Tilleul (infusion)"
	Data.s "Tisanes"
	Data.s "Tonic"
	Data.s "Verjus"
	Data.s "Vermouth"
	Data.s "Verveine (liqueur)"
	Data.s "Verveine (tisane)"
	Data.s "Vin blanc"
	Data.s "Vin rouge"
	Data.s "Vin de noix"
	Data.s "Vin doux naturel"
	Data.s "Vin mousseux"
	Data.s "Vodka"
	Data.s "Whisky"
	Data.s "Xéres"
	Data.s "Fin"
EndDataSection

Re: Problème de BDD multi-tables

Publié : dim. 21/oct./2012 20:11
par Mindphazer
Tu as oublié un espace dans ta requête INSERT INTO après le INTO :
DatabaseUpdate(#Base_de_donnees, "INSERT INTO " + Table$ + Requete$)
Sinon, le nom de la table est collé au INTO, et ça fait "syntax error" !!

Ajout aussi un espace : table$+" "+requete$

Enfin, change le nom de tes tables "produits laitiers" et "boissons & alcools" : un nom de table ne peut pas contenir d'espace

Dernière chose : l'apostrophe ayant une signification particulière en BDD, il ne faut pas qu'il y en ait dans tes données (pavé d'auge par exemple). Sinon, tu le remplaces par chr(34) :
Data.s "Carré de l"+Chr(34)+"Est"

Re: Problème de BDD multi-tables

Publié : lun. 22/oct./2012 0:53
par falsam
Bonsoir ou bonjour Micoute:)

Dans ce code, quand la base de données existe, il est impossible de l'ouvrir

Code : Tout sélectionner

If FileSize(Fichier_de_donnees$) = -1
   If CreateFile(#Base_de_donnees, Fichier_de_donnees$)
      CloseFile(#Base_de_donnees)
      
      If OpenDatabase(#Base_de_donnees, Fichier_de_donnees$, "", "", #PB_Database_SQLite)
         LireTable()
      EndIf
   EndIf   
EndIf
à remplacer par

Code : Tout sélectionner

If FileSize(Fichier_de_donnees$) = -1
  If CreateFile(#Base_de_donnees, Fichier_de_donnees$)
    CloseFile(#Base_de_donnees)   
  EndIf  
EndIf

If OpenDatabase(#Base_de_donnees, Fichier_de_donnees$, "", "", #PB_Database_SQLite)
  LireTable()
Else  
  MessageRequester("Information","Une erreur c'est produite "+#CRLF$+DatabaseError())  
EndIf
La procédure LireDonnees() devient

Code : Tout sélectionner

Procedure LireDonnees()
   Aliment$ = ""
   If Aliment$  = ""
      ; Creer une table
      Requete$ = "CREATE TABLE IF NOT EXISTS " + Table$ + " (Ingredient TEXT)"
      DatabaseUpdate(#Base_de_donnees, Requete$)
      While Aliment$ <> "Fin"
         Read.s Aliment$
         If Aliment$ <> "Fin"
            ;Ajouter des valeurs
            Requete$ = "INSERT INTO "+ Chr(39)+Table$+Chr(39) +" (Ingredient) VALUES ("
            Requete$ + Chr(34) + Aliment$ + Chr(34)
            Requete$ + ")"
            Debug Requete$

            If Not DatabaseUpdate(#Base_de_donnees, Requete$)
              Debug DatabaseError()
            EndIf
            
         EndIf
       Wend
   EndIf
EndProcedure
Les noms des tables doivent être sans espace, sans caractères spéciaux et de préférence en minuscules.
Produits laitiers devient Produitslaitiers
Boissons & alcools devient BoissonsAlcools

En tenant compte de tout ça, les tables sont bien remplis :)

Re: (Résolu] Problème de BDD multi-tables

Publié : lun. 22/oct./2012 10:17
par Micoute
Merci à tous les deux pour ces informations capitales pour moi qui suis un grand novice et merci surtout pour la solution et merci à tous de m'aider à progresser.

Re: (Résolu] Problème de BDD multi-tables

Publié : lun. 22/oct./2012 10:42
par falsam
Pourquoi créer autant de tables ?

Tu pourrais ne créer que deux tables
-Une table familles qui référence tes différentes catégories d'ingrédients.
Idfamille INTEGER PRIMARY KEY
famille TEXT

-Une table ingredients qui recense l'ensemble de tes ingrédients.
Chaque ingrédient est associé à un identifiant famille
Idauto INTEGER PRIMARY KEY
Idfamille INTEGER
Ingredient TEXT

Je te propose deux codes dans un but purement didacticiel.
-Un code de création de la base à placer avant ta DataSection
-Un code qui te permet de choisir une famille et de voir les ingrédients liés

Il est important de sauvegarder ces deux codes dans le dossier contenant la base de données.

Création de la base

Code : Tout sélectionner

   #Base_de_donnees
   #Table
EndEnumeration

Global Aliment$
Global Fichier_de_donnees$ = "Ingredients alimentaires.SQLite"
Global Requete$, Table$

UseSQLiteDatabase()

Procedure LireDonnees(Aliment$)
  Protected IdFamille.l
  
  ;Création de l'identifiant fammile d'ingrédient
  Requete$ = "INSERT INTO Familles (famille) VALUES ("
  Requete$ + Chr(34) + Aliment$ + Chr(34)
  Requete$ + ")"
  
  If Not DatabaseUpdate(#Base_de_donnees, Requete$)
    Debug "Création de l'identifiant pour la valeur "+Aliment$
    Debug DatabaseError()   
  Else
    
    ;Récupération de l'identifiant automatique du dernier enregistrement
    ;Mise en oeuvre de last_insert_rowid()
    Requete$ ="select last_insert_rowid() from Familles"
    If DatabaseQuery(#Base_de_donnees, Requete$)
      NextDatabaseRow(#Base_de_donnees)
      IdFamille = GetDatabaseLong(#Base_de_donnees, 0)
    EndIf
    
  EndIf  
  
  ;Ajout des ingrédients pour la famille concernée
  While Aliment$ <> "Fin"
    Read.s Aliment$
    If Aliment$ <> "Fin"
      ;Ajouter des valeurs
      Requete$ = "INSERT INTO ingredients (IdFamille, Ingredient) VALUES ("
      Requete$ + Chr(34) + Str(IdFamille) + Chr(34)+Chr(44)
      Requete$ + Chr(34) + Aliment$ + Chr(34)
      Requete$ + ")"
      Debug Requete$
      If Not DatabaseUpdate(#Base_de_donnees, Requete$)
        Debug DatabaseError()  
      EndIf  
    EndIf
    
  Wend
  
EndProcedure

Procedure  LireTable()
   Restore Produits_laitiers
   LireDonnees("Produitslaitiers")
   
   Restore Poissons
   LireDonnees("Poissons")
   
   Restore Oeufs
   LireDonnees("Oeufs")
   
   Restore Agneau
   LireDonnees("Agneau")
   
   Restore Boeuf
   LireDonnees("Boeuf")
   
   Restore Cheval
   LireDonnees("Cheval")
   
   Restore Porc
   LireDonnees("Porc")
   
   Restore Veau
   LireDonnees("Veau")
   
   Restore Gibier
   LireDonnees("Gibier")
   
   Restore Volailles
   LireDonnees("Volailles")
   
   Restore Condiments
   LireDonnees("Condiments")
   
   Restore Aromates
   LireDonnees("Aromates")
   
   Restore Feculents
   LireDonnees("Feculents")
   
   Restore Sucres
   LireDonnees("Sucres")
   
   Restore Fruits
   LireDonnees("Fruits")
   
   Restore Legumes
   LireDonnees("Légumes")
   
   Restore Champignons
   LireDonnees("Champignons")
   
   Restore Boissons_et_alcools
   LireDonnees("BoissonsAlcools")
   
EndProcedure

If FileSize(Fichier_de_donnees$) = -1
  If CreateFile(#Base_de_donnees, Fichier_de_donnees$)
    CloseFile(#Base_de_donnees)   
    
    ;Ouverture de la base de données 
    OpenDatabase(#Base_de_donnees, Fichier_de_donnees$, "", "", #PB_Database_SQLite)
    
    ;Creation de la table des familles d'ingrédient
    Requete$ = "CREATE TABLE familles (" 
  
    Requete$ + "Idfamille INTEGER PRIMARY KEY," ;Identifiant enregistrement
    Requete$ + "famille TEXT" ;Libelle de l'ingredient
      
    Requete$ + ")" ;Fin de la requete
  
    ;Exécution de la requete
    DatabaseUpdate(#Base_de_donnees, Requete$)    
    
    ;Creation de la table ingrédient
    Requete$ = "CREATE TABLE ingredients (" 
  
    Requete$ + "Idauto INTEGER PRIMARY KEY," ;Identifiant enregistrement
    Requete$ + "Idfamille INTEGER," ;Identifiant famille d'ingrédient
    Requete$ + "Ingredient TEXT" ;Libelle de l'ingredient
      
    Requete$ + ")" ;Fin de la requete
  
    ;Exécution de la requete
    DatabaseUpdate(#Base_de_donnees, Requete$)
        
  EndIf  
EndIf

If OpenDatabase(#Base_de_donnees, Fichier_de_donnees$, "", "", #PB_Database_SQLite)
  LireTable()
Else  
  MessageRequester("Information","Une erreur c'est produite "+#CRLF$+DatabaseError())  
EndIf  

DataSection 
   .........
EndDataSection
Voir les ingrédients associés à une famille.

Code : Tout sélectionner

Enumeration
  #Base_de_donnees
  #Mainform
  #Famille
  #Ingredients
EndEnumeration

Define.l Event, WEvent, MEvent, GEvent, TEvent

Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered

Global Fichier_de_donnees$, Requete$

Procedure Open_MainForm()
  OpenWindow(#Mainform, 0, 0, 500, 400, "New Form", WindowStyle)
  TextGadget(#PB_Any, 20, 20, 80, 20, "Catégorie à voir")
  ComboBoxGadget(#Famille, 100, 20, 200, 22)
  ListIconGadget(#Ingredients, 20, 45, 460, 340, "Ingrédients", 360)
EndProcedure

Procedure ListeIngredients(Famille.l)
  ClearGadgetItems(#Ingredients)
  
  ;Lecture des ingrédients lié à la famille demandée
  Requete$ = "SELECT Ingredient FROM Ingredients WHERE IdFamille = "+Chr(34)+Str(Famille)+Chr(34)
  If DatabaseQuery(#Base_de_donnees, Requete$)
    While NextDatabaseRow(#Base_de_donnees)
      AddGadgetItem(#Ingredients, -1, GetDatabaseString(#Base_de_donnees, 0))
    Wend
  EndIf  
EndProcedure


Procedure Start()
  ;Initialisation application, police, etc ..
  Open_MainForm()
  
  UseSQLiteDatabase()  
  Fichier_de_donnees$ = "Ingredients alimentaires.SQLite"
  OpenDatabase(#Base_de_donnees, Fichier_de_donnees$, "", "", #PB_Database_SQLite)
    
  ;Lecture des familles d'ingrédients
  Requete$ = "SELECT * FROM Familles ORDER BY Famille"
  If DatabaseQuery(#Base_de_donnees, Requete$)
    While NextDatabaseRow(#Base_de_donnees)
      AddGadgetItem(#Famille, -1, GetDatabaseString(#Base_de_donnees, 1))

      ;Pour chaque item du combogadget on attribue l'Idfamille
      SetGadgetItemData(#Famille, CountGadgetItems(#Famille)-1, GetDatabaseLong(#Base_de_donnees, 0))
      
    Wend
  EndIf
  
  ;Positionne en début de liste
  SetGadgetState(#Famille, 0) 
    
  ;Lecture des ingredients associé à la famille en cours 
  ListeIngredients(GetGadgetItemData(#Famille, 0))
  
EndProcedure

start()

Repeat
  Event  = WaitWindowEvent(10)
  WEvent = EventWindow()
  MEvent = EventMenu()
  GEvent = EventGadget()
  TEvent = EventType()
  Select Event
    Case #PB_Event_Gadget
      Select GEvent
        Case #Famille
          ListeIngredients(GetGadgetItemData(#Famille, GetGadgetState(#Famille)))
                    
      EndSelect
        
    Case #PB_Event_CloseWindow
      If IsDatabase(#Base_de_donnees)
        CloseDatabase(#Base_de_donnees)
      EndIf
      
      End
  EndSelect
ForEver