Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

davids16

Importar produtos de ficheiro CSV para SQL

Recommended Posts

Boa Tarde a Todos.

É o seguinte estou fazendo um site de uma loja online. O fornecedor dessa loja fornece um ficheiro csv com todos os produtos e preços.

O que eu queria era um script que fizesse a importação dos preços para a base dados MSSQL e que no final me mostrasse quais foram os produtos actualizados, e quais os que não foram.

Já procurei pelo forum e não encontrei nada que me ajudasse.

 

Agradeçia a vossa ajuda

 

Mto Obrigado

David

Compartilhar este post


Link para o post
Compartilhar em outros sites

para SQL Server você pode usar o Bulk Insert,

uma conexaun

strCSVConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";"

+ "Extended Properties='text;HDR=YES;'";

 

<%
csv_to_read="states.csv"
set fso = createobject("scripting.filesystemobject")
set act = fso.opentextfile(server.mappath(csv_to_read))

imported_text = act.readline


imported_text = replace(imported_text,chr(13),",")


imported_text = replace(imported_text,chr(34),"")


split_text=split(imported_text,",")


num_imported=ubound(split_text)+1


total_imported_text = act.readall


total_imported_text = replace(total_imported_text,chr(13),",")


total_imported_text = replace(total_imported_text,chr(34),"")


total_split_text=split(total_imported_text,",")


total_num_imported=ubound(total_split_text)

%>
<table width="100%">
<tr>
<%
for table = 0 to num_imported -1

%>
<td width="<% response.write 100/(num_imported) %>%">
<b><%= split_text(count) %></b>
</td>
<% 
count=count+1
next 
%>
</tr>
<tr>
<%

count=0

for tablea = 0 to (total_num_imported/ (num_imported)-1)
%>
<%
for table = 0 to num_imported -1

%><td width="<%= 100/(num_imported) %>%">
<%= total_split_text(count) 
%>
</td>
<% 
count=count+1
next 
%></tr>
<% next  %>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá xanburzum,

Agradeço a sua rápida resposta.

No entanto, não vejo onde voce usa o comando Bulk Insert.

Se pudesses me esclarecer agradeço

 

Cumprimentos

David

Compartilhar este post


Link para o post
Compartilhar em outros sites

Create TestTable

USE TestData
GO
CREATE TABLE CSVTest
(ID INT,
FirstName VARCHAR(40),
LastName VARCHAR(40),
BirthDate SMALLDATETIME)
GO

 

Criar CSV no drive C: com csvtest.txt nome com o seguinte conteúdo. A localização do arquivo é C: \ csvtest.txt

 

1,James,Smith,19750101

 

2,Meggie,Smith,19790122

 

3,Robert,Smith,20071101

 

4,Alex,Smith,20040202

 

Agora execute o seguinte script para carregar todos os dados do CSV para banco de dados tabela.

BULK
INSERT CSVTest
FROM 'c:\csvtest.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
--Check the content of the table.
SELECT *
FROM CSVTest
GO
--Drop the table to clean up database.
SELECT *
FROM CSVTest
GO

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.