Je développe un projet dans lequel je dois utiliser une base de données pour stocker les données d'un cinéma. L'une des tables stocke certaines données de films (nom du film, durée des acteurs, etc.) et comporte une colonne d'image; Je l'ai laissé nul pour pouvoir m'occuper de la connexion en premier, puis j'ai inséré les ovies mais je n'ai pas inséré l'image, et maintenant, lorsque j'essaye d'insérer l'image, cela donne cette erreur.

L'identificateur en plusieurs parties "Filmes.Titulo_Filme" n'a pas pu être lié.

Le code que j'utilise pour insérer l'image est le suivant:

insert into Filmes (Imagem) select * from OPENROWSET(BULK N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg', SINGLE_BLOB) as image where Filmes.Titulo_Filme = 'Bohemian Rhapsody'

Toute aide est très appréciée.

EDIT: J'ai essayé de mettre à jour la colonne car j'avais déjà toutes les autres colonnes remplies et cela ne fonctionnait toujours pas, mais maintenant cela donne une autre erreur.

Chaîne ou des données binaires seront tronquées.

La déclaration a été terminée.

Le code de la mise à jour:

update Filmes set Imagem = (select * from OPENROWSET(BULK N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg', SINGLE_BLOB) as image) where Filmes.Titulo_Filme = 'Bohemian Rhapsody'
0
DucklingDuck 26 janv. 2019 à 22:19

3 réponses

Meilleure réponse

Voici votre requête:

insert into Filmes (Imagem)
    select *
    from OPENROWSET(BULK N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg', SINGLE_BLOB) as image
    where Filmes.Titulo_Filme = 'Bohemian Rhapsody'

Filmes n'est pas défini. image est. Alors peut-être que vous voulez dire:

insert into Filmes (Imagem)
    select imagen
    from OPENROWSET(BULK N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg', SINGLE_BLOB) as image
    where image.Titulo_Filme = 'Bohemian Rhapsody';

Ou peut-être voulez-vous vraiment un update:

update filmes
    set imagem = i.image
    from OPENROWSET(BULK N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg', SINGLE_BLOB) as i(image)
    where filmes.Titulo_Filme = 'Bohemian Rhapsody';
2
Gordon Linoff 26 janv. 2019 à 19:32

Selon votre déclaration, vous avez déjà inséré des données dans tous les champs autres que le champ image de la table Filmes.

Donc, au lieu d'insérer, vous devez mettre à jour la colonne comme suit. Vous devez également vous assurer que les supports sont ajoutés aux bons endroits.

UPDATE Filmes
SET Imagem = 
    (SELECT  BulkColumn FROM OPENROWSET(BULK   N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg' , SINGLE_BLOB) AS x)
WHERE Filmes.Titulo_Filme = 'Bohemian Rhapsody'
1
sheela w 26 janv. 2019 à 19:58

Veuillez essayer d'exécuter les requêtes suivantes séparément. Vous saurez donc quelle requête génère une erreur. PREMIÈRE QUESTION

SELECT * FROM Filmes  WHERE Filmes.Titulo_Filme = 'Bohemian Rhapsody'

DEUXIÈME QUESTION

SELECT  BulkColumn FROM OPENROWSET(BULK   N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg' , SINGLE_BLOB) AS x
1
sheela w 26 janv. 2019 à 20:19